上一篇文章介绍了 covo-agent 的整体定位,一个用 Go 实现的"全能型" Agent。这篇文章来拆解一下其中最核心的一项设计:general 与 code 两种工作模式。
两种身份,一套系统
covo-agent 内置两种工作模式:general 与 code。
general 模式下,covo-agent 是一个通用助手。回答提问、编写与修改代码、分析信息、完成创造性工作,以及通过工具执行各类操作,均在其职责范围内。不预设场景,默认以"什么都能做"的姿态工作。
code 模式下则切换为专注于编码的助手,首要职责是软件工程任务。强调精确与高效,要求熟悉编程语言、框架与开发流程,优先保证正确性,并遵循项目现有的代码规范。
值得注意的是,两种模式共享同一套工具与上下文。切换模式并不会丢失正在进行的会话、持久化的记忆或既有的工具能力。
为什么需要两种身份
这个设计的用意在于调和"通用性"与"专业性"之间天然的张力。
一个纯通用型 Agent,在处理编码任务时往往不够聚焦,可能花费额外的轮次去权衡措辞、补充背景,而非直接产出符合规范的代码。反之,一个纯编码型 Agent,面对知识问答、流程自动化等场景时,又显得能力不足。
covo-agent 的解法是将两种身份置于同一套系统之中,通过身份切换来适配任务,而不是把产品拆分为两个独立工具。用户在同一个会话里,可以根据手头的工作在两种模式之间切换,既保留通用能力,又能在编码场景下获得更专注的表现。
内置之外,还有自定义模式
除 general 与 code 两种内置模式外,covo-agent 还支持自定义模式。
自定义模式允许用户定义一个新的"身份":为其指定一段系统提示词,并配置允许与禁止使用的工具清单(AllowTools / DenyTools)。这意味着用户可以根据自身需求塑造一个专属的 Agent 角色,例如限定只读的文档助手、专注于特定框架的开发助手,或面向某类业务的流程助手。
自定义模式与内置模式遵循同一套注册与校验机制,使用方式完全一致。这为"全能"提供了一个可扩展的出口:当内置身份不足以覆盖需求时,用户自行定义即可。
与执行阶段的区别
这里需要澄清一点:general / code 属于"模式”,定义的是"Agent 以什么身份工作";而"计划 / 执行"(plan / act)属于执行阶段,定义的是"Agent 当前能否改动文件"。
这两个维度是正交的。无论是 general 还是 code 模式,都可以进入 plan 阶段(只读、先出方案)或 act 阶段(允许执行修改)。执行阶段的细节,后续文章会专门展开,这里先点明它独立于模式,以免混淆。
小结
回到"全能”这个主题,covo-agent 的全能,并非靠堆积功能实现,而是通过"身份"这一层抽象:内置两种模式覆盖通用与编码两大类需求,自定义模式进一步扩展边界,而工具与上下文始终共享、不断层,这是区别于单一用途 Agent 的底层机制。