跳转至

外包 / 外包Agent

将复杂的多步任务委托给自主子 Agent 在后台执行,你可以继续聊天。

工作原理

任务 Agent 使用 ReAct 循环 — 思考、选择工具、观察结果、重复,直到任务完成或出错。可用工具:

  • file_read / file_write / file_list — 读写本地文件
  • shell_exec — 执行 Shell 命令(严格模式下有白名单限制)
  • grep — 搜索代码和文件内容
  • ask_user — 任务执行途中暂停并向你提问

两步流程

任务始终遵循 预览 → 确认 → 执行 的模式:

第一步 — 预览

在聊天中包含以下任意触发词即可启动外包模式:

语言 触发词
中文 外包模式外包任务帮我外包用外包外包给你
英文 outsource modeoutsource thisdelegate to agentrun as taskuse task agent
日文 派遣モード派遣して派遣タスク派遣に

示例:

"外包:扫描项目结构,生成一份 README"

Agent 调用 dispatch_taskaction=preview),生成分步执行计划展示给你确认。

第二步 — 确认

回复"是"、"开始"等确认词。Agent 调用 action=start,任务在后台开始执行。

执行过程中你可以继续聊天。

跟踪进度

在 Web 仪表盘打开 /outsource 页面,可以看到:

  • 所有任务状态(运行中、已完成、失败、已取消)
  • 实时逐步执行日志
  • 每一步使用的工具参数(可折叠查看)
  • 最终结果和修改的文件列表

状态栏还有一个任务托盘,随时显示活跃任务数量。

任务中途提问

子 Agent 遇到需要你确认的情况,会使用 ask_user 工具暂停执行,并在聊天中发送问题。你直接在对话框里回复,Agent 自动继续执行。

严格模式 vs 宽松模式

模式 允许操作
严格(默认) 读文件、搜索、语法检查、运行测试。安装包需通过 ask_user 明确征得你的同意。
宽松 以上全部,加上 pip installnpm 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}/)。任务结束后自动清理。