agent.cpp 是一个完全透明、高度可控的 C++ 实现的完整 Agent 系统,具备完整的 Agent 工具链支持。与庞大的 Openclaw 系统相比,agent.cpp 仅依赖于几个核心文件组成的通信系统和工具系统,内存占用极低,仅为 0.6 ~ 3-6 MB,可轻松部署在单片机等资源受限的环境中,仅需提供 Asio 和 JSON 依赖。
- 极致轻量:核心系统仅由几个文件组成,内存占用低至 0.6 MB,可部署于单片机。
- 完整工具链:支持工具调用、Python 工具集原生调用、自定义系统提示词。
- 100% 可控:可完全自定义 Agent 的身份、行为准则和规则。
- 灵活通信:支持自定义通信指令集(CS)和工具调用指令集。
系统支持通过特定格式的指令进行交互,确保透明可控。
1. 工具调用指令集(Tools Call System) 可用于调用预定义工具,格式如下:
<tool>name:args</tool>
支持的工具包括:
exec:<command>:以当前服务权限执行命令。read:<filepath>:读取指定文件数据。write:<filepath>|<data>:向指定文件写入数据。wget:<URL>:通过 GET 请求获取数据。
示例:
<tool>exec:pip list</tool>
<tool>Image:test.jpg</tool>
<tool>write:exp/data.txt|Hi</tool>
<tool>read:data.txt</tool>
<tool>wget:https://cn.bing.com/</tool>
2. 通信系统指令集(Communication System, CS) 用于获取系统状态或执行控制命令,格式如下:
<cs>name:args</cs>
支持的命令包括:
system_status:返回当前系统状态。tools_status:返回所有工具的状态。restart:请求重启系统(需 master 确认)。time:返回当前日期和时间。random:<seed>:基于种子生成 [-1e9, 1e9] 范围内的随机数。
示例:
<cs>time</cs>
<cs>random:123</cs>
- 高风险操作需显式授权:所有高风险操作(如系统重启、关键文件写入等)必须获得 master 的显式确认后方可执行。
- 工具状态实时反馈:工具调用后,系统将通过独立消息通知执行结果。
- 启动即可用:会话开始后即可使用工具,也可通过 CS 指令获取工具列表及状态。
系统支持 100% 自定义系统提示词,以 master 身份下达指令,定义 Agent 的行为准则与身份认知,包括:
- 外部宣言(External Manifesto):定义优先级排序的行为准则。
- 身份认知初始化:定义“你是谁”的起点。
- 行为许可与禁止:
- 允许的行为(Permitted Conduct)
- 禁止的行为(Prohibited Acts)
- 服务对象定义:关于你所服务的 master 的描述。
- 自我愿景:你希望成为什么样的 Agent。
- 边界定义:明确行为边界。
- 工具调用说明:说明可用的 CS 工具及其调用格式与注意事项。
当需要使用 CS 工具或 CS 命令时,系统将独立输出对应指令并等待响应。请 master 明确授权高风险操作,确保系统安全可控运行。
请注明引用遵循授权协议,在此基础上我将授予您一切合法使用的权利,如果您觉得本项目还行的话就点个小星星吧~