Agent、角色与指引
Agent 是一个可寻址的执行实体,拥有独立的身份、指引、记忆和工作状态。你可以从不同客户端连接同一个 Agent,而无需重新创建身份。聊天窗口只是与它交互的一种方式,Agent 本身由运行时统一管理。
例如,一个负责审查代码的 Agent 今天审查了一处改动,明天仍能根据已保存的工作记录回答追问。不过,仅有身份并不能让审查持续推进;要继续工作,还需要一个可运行的目标,或在等待外部事件唤醒的明确等待记录。
身份与职责
Agent ID 用于接收消息并标识运行时状态的归属。角色则界定该 Agent 应当承担的工作。单把 Agent 命名为 reviewer,并不会自动赋予它审查指令、代码仓库访问权限或批准 Pull Request 的授权。
当一项职责需要长期积累上下文时(例如文档维护),适合使用持久 Agent;如果是边界明确的短期委托(例如检查某一目录下的死链),则更适合使用受监督的子 Agent。父 Agent 始终负责验收子 Agent 的交付物并处理资源清理。详见多 Agent 协作。
Agent Home 的职责范围
Agent Home 保存 Agent 专属的持久文件。其中的 AGENTS.md 规定了 Agent 的角色定位、日常职责与升级边界;精心维护的记忆文件记录稳定的用户偏好与关键事实;工作笔记保存更长的参考资料;运行时接管的记录则保存工作项与执行证据。
项目代码与仓库约定属于项目工作区(Workspace)。一个在两个代码仓库中工作的审查 Agent,可以把通用的审查职责留在 Agent Home,而由各仓库自行提供构建命令与贡献规则。将两者解耦,能避免某个项目的约定意外污染其他项目。
指引的组合机制
运行时加载的指引明确了 Agent 在授权范围内的行动方式:
- Agent 自身的
AGENTS.md定义其长期角色。 - 工作区指引定义当前项目的本地约定。
- 操作者发来的当次指令定义当前任务及其验收目标,且受更高优先级的运行时约束制约。
- 匹配到特定任务时,Skill(技能)提供具体的操作工作流。
这些指引来源拥有清晰的作用域与优先级。项目规则要求运行测试,并不意味着操作者要求只读审查时 Agent 可以执行发布;调研期间打开的普通文件,也不会具备指引文件的同等权威。详见信任边界。
Agent 模板用于初始化新 Agent 的角色与可选 Skill。Agent 一旦创建,便拥有独立的文件和历史记录。如果需要调整已有 Agent 的职责,应直接更新其指引文件,而不是尝试将模板覆盖到已有状态上。
生命周期与边界
Agent 在空闲或等待时,其身份与工作记录依然完好可用。关闭客户端窗口不等于停止 Agent 或关闭守护进程。删除 Agent 是一项独立的生命周期操作,不能当作关闭对话的手段;清理前务必检查未完成的工作与所有权归属。
通过 Web GUI、API 或 holon agent create 创建未指定初始消息的 Agent 时,运行时会自动调度一轮默认引导初始化(bootstrap initialization turn),生成第一条引导对话以确保首次会话界面就绪;单次命令行运行(run_once)则保持静默,直接接收操作者的首条提示。
持久身份并不等于无限的记忆上下文。每次模型调用所能容纳的上下文都有上限;即使工作目标跨轮次保留,意外中断的命令仍然可能需要专门的恢复步骤。上下文连续性对此做了详细说明。
