从零搭建OpenHarness风格Agent运行时:工具、记忆、权限、技能与多智能体协作
本文手把手教你从零实现一个OpenHarness风格的Agent运行时,涵盖工具调用、权限管理、记忆、技能、上下文压缩、重试逻辑、成本追踪和多智能体协调等核心模块。无需API Key即可运行,适合想深入理解Agent框架内部机制的中文开发者。
一句话看懂
从零实现一个可运行的Agent运行时,涵盖工具、记忆、权限、技能和多智能体协调,无需API Key即可实验。
详细发生了什么
MarkTechPost发布了一篇深度教程,指导开发者从零构建一个类似OpenHarness的Agent运行时。教程的核心思路是:不把Agent框架当作黑盒,而是暴露完整的控制流——从接收用户任务、模型决策下一步、验证并执行工具调用、返回观测结果,到循环直至任务完成。
教程覆盖了以下核心模块:
- 工具使用与类型化Schema:通过dataclass定义工具输入模型,自动生成JSON Schema,并支持类型校验和强制转换。
- 权限系统:将工具按危险程度分为READ、WRITE、EXECUTE、META四类,驱动默认权限策略。
- 生命周期钩子:在工具执行前后插入自定义逻辑。
- 记忆与技能:支持对话历史管理和可复用的技能模块。
- 上下文压缩:通过token计数和摘要策略控制上下文窗口。
- 重试逻辑与成本追踪:自动重试失败调用,并基于token数估算美元成本。
- 多智能体协调:支持多个Agent分工协作。
所有代码均以Python实现,使用asyncio支持异步,且不依赖外部API Key或复杂基础设施,可直接在本地运行实验。
中文圈视角
这篇教程对中文开发者有很高的参考价值,原因有三:
-
填补了Agent框架内部原理的中文资料空白。目前国内主流Agent框架(如Dify、FastGPT、Coze)虽然易用,但大多封装了底层细节。这篇教程从零搭建的思路,能帮助开发者真正理解tool calling、permission、context compaction等机制是如何工作的,从而更好地定制和调试自己的Agent应用。
-
无需API Key即可运行。对于国内开发者,很多国外模型API访问受限或需要特殊网络环境。教程使用mock模型和本地token估算,完全可以在无网络环境下跑通,降低了学习门槛。
-
多智能体协调的设计思路。国内多Agent框架(如AgentScope、MetaGPT)各有特色,但OpenHarness风格的权限和生命周期设计值得借鉴,尤其是在企业级应用中需要精细控制工具访问权限的场景。
不过需要注意,教程中的成本估算基于美元定价,国内用户若使用国产模型(如DeepSeek、Qwen)需自行调整PRICE_BOOK。另外,权限系统的设计偏通用,实际生产环境可能需要更细粒度的用户-角色-资源模型。
几条值得记住的细节
- 工具输入模型通过dataclass定义,自动生成JSON Schema,支持类型校验和强制转换。
- 权限分为READ、WRITE、EXECUTE、META四类,可驱动默认策略。
- CostMeter基于token数估算成本,支持自定义模型定价。
- 上下文压缩通过count_tokens函数(约4字符/token)实现,可扩展为更复杂的策略。
- 多智能体协调通过共享ToolContext和消息传递实现,未依赖外部框架。
一句话总结
如果你想深入理解Agent框架的内部机制,这篇教程提供了可运行的完整代码,是极佳的学习起点。