返回博客列表

Recruit Skill - Agent 人格构筑工具

从 214 行精简到 16 行,一个通过迭代式询问构建 Agent 人格的 Claude Code Skill。

#Claude#AI#Tools#Skill

引言

在使用 AI Agent 时,一个常见需求是让 AI 扮演特定角色:代码审查员、技术文档写作者、测试工程师等。但如何让 AI 准确理解这个角色的行为边界?直接写出详细指令成本高,且容易遗漏关键约束。

recruit-skill 采用另一种路径:通过迭代式深度询问,让 AI 逐步理解并构建用户期望的人格画像。

设计历程

版本演变

版本行数说明
v1214 行完整流程图、多表格、详细说明
v217 行精简到核心指令
v316 行移除冗余约束

从 v1 到 v3,核心变化:

  • 角色优先:从预设维度(如"技术栈"、"代码风格")改为先问"什么角色"
  • 终止条件:从"覆盖所有维度"改为"AI 判断 + 用户确认"
  • 格式精简:参考 grill-me(11 行)极简风格,删除 DOT 图、表格

设计决策

决策理由
不预设固定维度不同角色需要不同维度,由 LLM 动态判断
不预设终止条件AI 判断足够后需用户确认,非单方面结束
不强制读取记忆选择权交给用户,避免历史污染
极简指令格式只给核心行为约束,避免过度指导

核心逻辑

完整的 SKILL.md:

---
name: recruit
description: Build agent persona through iterative questioning.
---
 
Build the user's desired agent persona by asking questions one at a time:
1. Explore existing context (memory files, CLAUDE.md, project structure)
2. Ask: what role to define?
3. Ask role-specific dimension questions.
   When you believe info is sufficient, present summary for confirmation.
4. Summarize persona, confirm write path or keep as session context
 
Constraints:
- No assumptions. Ask if uncertain.
- Do NOT write without user confirmation.

16 行,无流程图,无预设维度表。

核心特性

特性说明
角色优先先问角色类型,再决定询问维度
一问一答每次只问一个问题,逐层深入
语言自适应输出语言自动匹配用户交互语言
写入需确认任何文件写入必须用户明确确认

为什么"一问一答"

一次性抛出多问题,用户回答容易遗漏。逐个询问可确保每个维度都被充分探索。

为什么"语言自适应"

用户可能用中文或英文交互。Skill 不应强制输出语言,而应匹配用户的自然表达。

使用方式

# 安装
cp -r skills/recruit ~/.claude/skills/
 
# 触发
/recruit

典型对话流程:

AI: 你想定义什么角色?
用户: 代码审查员
AI: 代码审查员应该关注哪些方面?
用户: 性能、安全、可维护性
AI: 性能方面,是否有特定的阈值或指标?
用户: 响应时间超过 200ms 算问题
...
AI: 我已收集足够信息,以下是人格摘要:
    - 角色:代码审查员
    - 关注点:性能、安全、可维护性
    - 性能阈值:响应时间 < 200ms
    - 输出格式:Markdown 检查清单
    是否确认?
用户: 确认,写入 .claude/reviewer.md

对比其他方案

方案优点缺点
手写指令完全控制成本高、易遗漏
预设模板快速启动不适配特殊需求
recruit-skill灵活、完整需要对话时间

recruit-skill 的价值在于:通过对话过程,确保人格定义的完整性,同时保留用户对最终输出的控制权。

后续方向

  • 接入 SuperHarness 项目
  • 收集用户反馈迭代
  • 多语言输出测试

参考