mcpField
M
monitor-and-review-ai-employee-work

monitor-and-review-ai-employee-work

github.com/dozaldevsAgent 工作流012 次安装1 天前更新
代码仓库

关于 monitor-and-review-ai-employee-work

用于查看 AI 员工任务、检查输出和日志,并记录人工批准或拒绝的技能,帮助组织成员跟踪活动并排查运行失败。

主要功能

  1. 01查看任务状态和输出
  2. 02批准或拒绝草稿
  3. 03读取任务事件和执行记录
  4. 04查看近期活动与决策
  5. 05查找未执行工作的员工

适用场景

  1. 01审核待批准的草稿
  2. 02排查任务失败原因
  3. 03检查员工近期活动
  4. 04跟踪等待人工处理的任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dozaldevs/dozaldevs-skills --skill monitor-and-review-ai-employee-work

安装后在 Claude Code 中输入/monitor-and-review-ai-employee-work确认已加载。

详细介绍

监控并审核 AI 员工的工作

此操作会检查任务,让人工批准或拒绝员工的产出,并查看组织员工的工作情况。也可以在 Slack 中批准。两种方式都会进入同一个决策流程。

前置条件:先加载 operate-ai-employees。它会设置 dozaldevs CLI 和密钥,并说明如何读取错误。你还需要 task_id(运行员工时获得)。任何密钥级别都可以读取;批准或拒绝则需要 Member 或更高权限。

任何命令的参数和字段:dozaldevs <command> --help 和 ../operate-ai-employees/references/customer-api.md。以下仅说明无法从规范中直接查到的行为。

检查状态:调用一次,读取 phase_category

dozaldevs get-task "$TASK"

根据 phase_category 作出判断,并忽略原始 status:

phase_category含义告知人工
working仍在运行“仍在处理中,请等一两分钟后再问我。”
awaiting_human工作已完成,等待批准显示产出(见下文),并询问是批准还是拒绝。
terminal已完成(Done)或已停止(Failed、Cancelled)Done:显示产出,并说明已交付。否则说明实际情况并解释。

已被某人批准或拒绝的任务会显示为 working,即使其原始 status 仍为 Reviewing。awaiting_human 表示尚无人作出决定。decision 在有人作出决定前为 null,之后会注明由谁作出决定以及决定内容,因此只要该字段已设置,就绝不要再提供批准或拒绝选项。显示 output.draft;若没有草稿,则显示 output.summary。

等待:仅在人工要求等待时

默认只调用上述命令一次,然后继续操作。如果人工要求等待结果,则运行以下命令。只要任务处于 working,它就会每 10 秒重新读取一次;约 80 秒后停止,并输出最后一次读取的 phase_category:

dozaldevs get-task "$TASK" --while phase_category=working --every 10 --timeout 80 --field phase_category

当输出为 working 时,再次运行该命令。其他情况则回到表格查看。如果调用失败,命令会输出错误;请遵循其 next_step。绝不要打开流(stream-* 命令会一直保持打开状态,直到服务端关闭)。

批准或拒绝(当状态为 awaiting_human 时)

先展示草稿,再根据人工的决定采取操作。批准:

dozaldevs decide-task "$TASK" --data action=approve

拒绝时,在 $REASON 中填写人工给出的理由:

dozaldevs decide-task "$TASK" --data action=reject --data reason="$REASON"
  • 202:已记录。批准后会进行交付(例如发布到 Slack):“已批准,正在发送。”
  • 409 TASK_NOT_AWAITING_REVIEW:重新检查状态;任务可能仍在运行,也可能已经完成。
  • 409 TASK_ALREADY_DECIDED:有人已先行作出决定。message 会注明由谁作出决定以及决定内容;请告知人工。重复发送相同决定只会再次返回 202。

拒绝时务必提供 reason,因为它会成为员工学习的反馈。绝不要替人工作出决定,也绝不要因为你觉得产出看起来不错就批准或拒绝。

运行出错的原因:查看运行日志

先查看失败的任务本身(get-task)。failure_reason 是对运行停止原因的说明,failure_code 是简短代码,run_headline(非 null 时)用一句简单的话概述出错情况。已知的密钥值会从原因说明中屏蔽。status_history 显示运行结束时所处的状态。要了解更多信息,可以查看客户可读的运行日志。按以下顺序查看:

  1. 先看事件。 其中列出了每次工具调用的输入、输出、错误标记和耗时、失败并重试的调用、已连接应用的调用、等待审批的情况、状态时间线、运行输入,以及员工在运行开始时的设置和此后所做的编辑。

    dozaldevs get-task-events "$TASK"
    
  2. **然后看转录,**每次尝试对应一条记录。要完整查看某次尝试,请使用 --id 传入其 ID:

    dozaldevs list-executions --task_id "$TASK"
    dozaldevs list-executions --id "$EXECUTION"
    
  3. **最后看状态日志,**了解各项操作的发生顺序:

    dozaldevs get-task-status-log "$TASK"
    

不要使用 get-task-conversation。它只会返回临时对话,而员工运行不会有对话内容。员工收到的指令和发出的内容,记录在任务的 output、事件和执行记录中。

用通俗的话说明日志显示了什么。日志不一定总能解释失败原因。如果没有显示原因,就如实说明,不要猜测。平台原始容器日志仅供平台工作人员查看,因此不要查找它。

活动与实时状态

  • 近期工作:list-tasks(添加 --limit 10)、list-deliverables --task_id "$TASK"(查看某个任务的输出)、list-recent-decisions(查看近期由谁作出了什么决定),以及 list-silent-dozals(查看本应采取行动却没有行动的员工,以及各自的一条原因):

    dozaldevs list-tasks --limit 10
    dozaldevs list-deliverables --task_id "$TASK"
    dozaldevs list-recent-decisions
    dozaldevs list-silent-dozals
    
  • **等待某人处理:**查看任务正在等待哪项审批。

    dozaldevs list-task-pending-approvals "$TASK"
    
  • **实时进度:**没有可供追踪的流。使用上面的 --while 等待,并在每轮之间告诉用户 phase_category 显示的内容。要了解运行当前正在做什么,请查看事件。

评论

支持 Markdown