关于 hire-ai-employee
通过与平台的 Hiring Dozal 对话来创建 AI 员工的技能。它引导用户说明需求并作出选择,展示草稿供确认后再完成聘用。
主要功能
- 01创建设置对话
- 02收集需求和选择
- 03展示完成的员工草稿
- 04经人工确认后聘用
- 05重启或丢弃设置对话
适用场景
- 01配置新的 AI 员工
- 02指定运行时间和结果去向
- 03选择运行是否需要审批
- 04继续或放弃未完成的设置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dozaldevs/ dozaldevs-skills --skill hire-ai-employee安装后在 Claude Code 中输入/hire-ai-employee确认已加载。
详细介绍
聘用 AI 员工
通过与 Hiring Dozal 聊天,即平台自带的设置助手,来设置一名新的 AI 员工(Dozal)。它会提出问题、查找信息(连接了哪些应用、你指的是哪个 Slack 频道),展示一个已完成的 Dozal,然后由你聘用它。
前提条件:先加载
operate-ai-employees。它会安装dozaldevsCLI 并说明密钥。聊天需要 Admin 级别或更高级别的密钥;较低级别的密钥会返回403 FORBIDDEN。
概念和响应格式:../operate-ai-employees/references/customer-api.md。如需查看某条命令的参数,请运行 dozaldevs <command> --help。此技能只介绍聊天的行为。
聊天的工作方式
聊天在服务器上进行。打开一次聊天后,每次发送一条消息。每次发送都会立即返回 202,回复则稍后写入(首次需要启动机器时,最长约需 1 分半钟)。因此,每轮流程都是:发送、等待、读取。
- 打开。 保存聊天 ID。
CHAT=$(dozaldevs start-hiring-chat --data kind=create --field conversation.id)
- 发送。 先读取当前的
turn_seq,并在发送消息时一并传回。
SEQ=$(dozaldevs get-hiring-chat "$CHAT" --field turn_seq)
dozaldevs send-hiring-message "$CHAT" --data message="$MESSAGE" --data turn_seq:="$SEQ"
- 等待。 运行此命令;只要输出
true,就再次运行。轮次结束时命令会立即停止,或者在 80 秒后停止。turn_seq增加 1 即表示该轮成功。如果没有增加,最后一条messages记录中的error:true会说明原因。
dozaldevs get-hiring-chat "$CHAT" --while turn_in_progress=true --every 3 --timeout 80 --field turn_in_progress
- 读取。 运行
dozaldevs get-hiring-chat "$CHAT"。向用户展示messages中新增的助手记录,以及open_questions中的每条记录。 - 回答。 使用当前的
turn_seq发送下一条消息。按钮选择放在answers中,以问题的id为键:--data answers.q1.option=approval_on,或者在允许输入文字时使用--data answers.q2.text="..."。如果只按按钮,message可以为空。
dozaldevs send-hiring-message "$CHAT" --data message="" --data turn_seq:="$SEQ" --data answers.q1.option="$OPTION"
- 准备就绪后停止:
presented为true,open_questions为空,并且draft已设置。
首次消息写得具体而详细(说明运行时机、产出内容、结果去向以及涉及哪些应用),通常就能直接得到已完成的 Dozal。“给我做个机器人”总会引发提问。继续对话,直到一切准备就绪;最常见的错误就是在第一个问题后停止。
平台会提出的三个问题
这些问题带有 protocol 字段,必须通过按钮回答。输入文字不会改变它们。
protocol | 它在询问什么 | 选项值 |
|---|---|---|
approval | “每次发送前都先给你看结果,还是直接发送?” | approval_on(先给我看),approval_off(直接发送) |
schedule | 应用无法立即发布新内容,因此 Dozal 会每 15 分钟检查一次。 | schedule_ok、schedule_talk |
changes_each_run | 用户每次都提供这个值,还是应该始终保持相同? | each_time、always_same |
用通俗的说法转述每个问题,并提交用户自己的选择。绝不要替用户按下“直接发送”,即使这样可以更快完成。
发送被拒绝时
| 代码 | 处理方法 |
|---|---|
409 TURN_IN_PROGRESS | 等待当前轮次结束,然后再发送。 |
409 DRAFT_CONTINUED_ELSEWHERE | 有人已继续推进此聊天。重新读取内容,展示发生的变更;如果消息仍然合适,就使用新的 turn_seq 重发一次。 |
503 HIRING_BUSY | 暂时没有可用的设置机器。等待一分钟后再发送。 |
409 CONTEXT_FULL | 聊天内容太长。重新开始(见下文),在同一草稿上开启新的聊天。 |
409 CONVERSATION_CLOSED | 此聊天已结束(details.closed_reason)。请新开一个聊天。 |
503 HIRING_UNAVAILABLE | 当前无法通过聊天进行设置。告知用户,稍后再试。 |
dozaldevs restart-hiring-chat "$CHAT"
聘用 Dozal
向用户展示 draft 中的英文摘要(名称、功能、运行时间、结果去向,以及发送前是否会征求确认),并请对方确认。用户回答“是”后,发送聊天当前的 turn_seq(按步骤 2 中所述读取):
dozaldevs hire-from-hiring-chat "$CHAT" --data turn_seq:="$SEQ"
200 表示已上线,聊天也会关闭。拒绝时会以普通文字说明原因(例如,如果某个应用仍需连接,会返回 400 MISSING_CONNECTION)。告知用户需要解决的问题,然后继续聊天或重新聘用。如果缺少的是连接,启动后会返回一个只有真人才能打开的链接(参见 operate-ai-employees)。
若要放弃此次设置:
dozaldevs discard-hiring-chat "$CHAT"
已聘用的 Dozal 的 ID 是聊天中的 archetype_id。它的 slug 是用于运行它的稳定名称:
DOZAL=$(dozaldevs get-hiring-chat "$CHAT" --field archetype_id)
dozaldevs list-dozals --id "$DOZAL" --field items[0].slug
聘用后
告知用户它已上线,并询问是否要运行:“已经设置好了!要我现在运行一次,让你看看它的功能吗?”然后加载 run-ai-employee。