外包 / 外包Agent
将复杂的多步任务委托给自主子 Agent 在后台执行,你可以继续聊天。
工作原理
任务 Agent 使用 ReAct 循环 — 思考、选择工具、观察结果、重复,直到任务完成或出错。可用工具:
file_read/file_write/file_list— 读写本地文件shell_exec— 执行 Shell 命令(严格模式下有白名单限制)grep— 搜索代码和文件内容ask_user— 任务执行途中暂停并向你提问
两步流程
任务始终遵循 预览 → 确认 → 执行 的模式:
第一步 — 预览
在聊天中包含以下任意触发词即可启动外包模式:
| 语言 | 触发词 |
|---|---|
| 中文 | 外包模式、外包任务、帮我外包、用外包、外包给你 |
| 英文 | outsource mode、outsource this、delegate to agent、run as task、use task agent |
| 日文 | 派遣モード、派遣して、派遣タスク、派遣に |
示例:
"外包:扫描项目结构,生成一份 README"
Agent 调用 dispatch_task(action=preview),生成分步执行计划展示给你确认。
第二步 — 确认
回复"是"、"开始"等确认词。Agent 调用 action=start,任务在后台开始执行。
执行过程中你可以继续聊天。
跟踪进度
在 Web 仪表盘打开 /outsource 页面,可以看到:
- 所有任务状态(运行中、已完成、失败、已取消)
- 实时逐步执行日志
- 每一步使用的工具参数(可折叠查看)
- 最终结果和修改的文件列表
状态栏还有一个任务托盘,随时显示活跃任务数量。
任务中途提问
子 Agent 遇到需要你确认的情况,会使用 ask_user 工具暂停执行,并在聊天中发送问题。你直接在对话框里回复,Agent 自动继续执行。
严格模式 vs 宽松模式
| 模式 | 允许操作 |
|---|---|
| 严格(默认) | 读文件、搜索、语法检查、运行测试。安装包需通过 ask_user 明确征得你的同意。 |
| 宽松 | 以上全部,加上 pip install、npm install、白名单内的任意命令。 |
在 settings.yaml 中配置:
tools:
dispatch_task:
enabled: true
strict_mode: true # 改为 false 开启宽松模式
max_steps: 20
max_tokens: 8192
取消与删除
- 取消 — 在
/outsource页面停止正在运行的任务,状态设为cancelled。 - 删除 — 软删除(保留历史记录),便于事后排查执行日志。
临时文件
子 Agent 会把执行过程中创建的临时脚本放在专属目录(/tmp/jkriver_tasks/{task_id}/)。任务结束后自动清理。