# 使用代码代理执行代码分析、修改或生成任务

## 使用场景

当你希望在当前项目里让代码代理帮助你分析代码、修改实现、生成新代码，或者在完成修改后继续做验证与后续整理时，可以直接使用代码代理启动一次任务。

## 操作步骤

1. 先在你的项目目录中打开终端。
2. 根据你的使用方式选择下面两种入口之一：

   - **交互模式**：输入 `jca`，然后按回车。
   - **非交互模式**：输入类似下面的命令，然后按回车：

     `jca -n --task "修复配置加载失败的问题，并检查相关文件"`

3. 如果当前目录还不是 Git 仓库：
   - 交互模式下，系统会先询问你是否要初始化 Git 仓库。
   - 非交互模式下，系统会直接按继续初始化的方式尝试准备仓库环境。
4. 如果你使用交互模式，进入界面后直接输入本次代码任务，例如“帮我修复登录接口的空指针问题，并补充必要测试”，然后按提示提交。
5. 如果你使用非交互模式，系统会直接把 `--task` 后面的内容当作任务描述开始执行，不再进入交互式输入界面。
6. 等待系统完成本轮代码分析、修改、验证和后续处理，并在终端中查看结果。

## 你会看到的提示与反馈

- 启动后会看到欢迎信息，表示代码代理已经准备就绪。
- 交互模式下，你会看到输入需求的提示，并可继续输入任务内容。
- 如果当前仓库里存在与当前提交一致的历史会话，交互模式下系统可能会先让你选择是否恢复其中一个会话，再继续输入新需求。
- 非交互模式下，系统不会再打开输入界面，而是直接使用 `--task` 后面的内容开始执行。
- 如果你只写了 `jca -n`，却没有同时提供 `--task`，系统会直接报错并提示必须使用 `--task` 传入任务内容。
- 如果你在交互模式下没有输入任何内容就结束，本次运行会直接退出，不会继续执行任务。

## 注意事项

- 交互模式适合边想边补充说明的任务；非交互模式更适合脚本、自动化流程和一次性明确任务。
- 非交互模式必须和 `--task` 一起使用，不能启动后再手动补输入需求。
- 如果任务很长，建议改用任务文件方式，而不是把整段说明硬写进命令行。
- 如果你希望直接恢复旧会话而不是等待系统自动提示，可以改用带 `--restore-session` 的启动方式。
