关于 agent-interface-design
agent-interface-design 是根据实际误用情况改进工具接口的 Agent 技能。它侧重于用参数表达意图和约束,并在设计时考虑调用方、工具发现方式及剩余风险。
主要功能
- 01通过日志或反馈调查误用
- 02用参数表达有效选项与意图
- 03将行为指引放在工具描述中
- 04平衡常驻工具与按需发现
- 05指出剩余错误及所需防护
适用场景
- 01重新设计 Agent 容易误用的工具
- 02明确工具参数并限制无效状态
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neeeophytee/ finding-unknowns-skills --skill agent-interface-design安装后在 Claude Code 中输入/agent-interface-design确认已加载。
详细介绍
Agent 界面设计
示例只教会一条路径,也悄然排除了其他路径:向模型展示三种调用工具的方式,它往往就只会给出这三种方式。设计良好的界面能一次性展示整个可能空间。参数说明可能的操作,描述说明预期行为,剩下需要写的内容就很少了。
步骤
- 重新设计工具之前,先弄清楚它实际上是如何被误用的。阅读对话记录、日志或用户的投诉。误用首先是界面问题,其次才是文档问题;解决办法通常是重命名或调整类型,而不是增加一段说明。
- 将含义融入参数:
- 用枚举代替自由文本。例如,状态采用
pending | in_progress | completed,无需一句说明文字,就能展现完整的状态机。 - 根据意图而非实现来命名,让正确的调用本身读起来就很恰当。
- 在类型系统允许的范围内,让无效状态无法表示。无法表达错误的参数,无需针对该错误添加警告。
- 用枚举代替自由文本。例如,状态采用
- 将行为说明放在工具自身的描述中,置于使用位置,且只放在那里。在全局前言中重复相同指引,正是代码库产生矛盾的原因。
- 把想添加用法示例的冲动当作诊断信号:这通常说明参数定义不够明确。先改进界面。只有当格式确实无法推断时才保留示例,例如专用的查询语法。
- 确定哪些工具应常驻,哪些应可按需发现。大多数轮次都需要的工具应放在上下文中;很少需要的工具应能按需查找,这样在需要之前就不会产生任何开销。
- 最后,指出设计仍然允许哪种错误,并说明这种错误是否代价足够低,可以接受;还是需要明确的防护措施。
防护措施
- 如果描述必须解释某个参数的含义,就说明这个参数需要更合适的名称。
- 不可逆且风险高的操作例外:这类情况下,明确的限制和确认比优雅更重要。
- 在找到所有现有调用方之前,绝不重新设计签名。
- 目标不是简洁,而是表达清晰。删掉承载真实行为的描述,结果比描述稍长更糟。
评论
支持 Markdown