返回项目列表

OpAgent

以 Go 实现的 Agent 框架与多 Agent OS Runtime。文件就是状态,Runtime 是内核,协议让不同语言的实现还能互操作。

Runtime 是内核,不是又一个聊天框

OpAgent 是一个 Apache-2.0 的开源项目:用 Go 写 Runtime,再用一套跨语言协议把 Agent、Tool、Server 和 UI 接起来。

它要解决的不是“怎么在代码里编排一条 Agent 流程”,而是 Agent 怎么被安装、启动、隔离、协作,以及对话和产物怎么留下来。目录是工作空间,对话写成文件,权限留在本机。我把这层叫做 AgentOS

为什么这样做

  • 文件就是可持久化状态。 Agent manifest、Skill、Tool、线程 JSONL 和产物都看得见,也能搬走。
  • Runtime 是内核。 产品身份、账户、托管服务和信任决策交给宿主钩子,不塞进内核。
  • 权限留在本机。 Prompt、仓库、Tool 和远端节点都不能自己给自己加权限。
  • 协议优先。 基于带类型的 JSON-RPC/MCP 操作,Go、TypeScript 和其他语言可以实现同一套 wire,不绑死某一个前端。
  • 对话只有一个事实源。 Runtime 的线程 JSONL 是权威记录,通用 Server 不再另建一套聊天库。

仓库里有什么

  • opagent-runtime:可嵌入的 Go Runtime,负责 Agent loop、文件线程、权限、沙箱、Tool、Skill 和 Subagent
  • opagent-protocol:跨语言 wire 规范,官方 SDK 目前是 Go 和 TypeScript
  • opagent-server:本机 HTTP/SSE 宿主,带认证,以及一个单 Workspace Web 控制台
  • agents / tools / skills:可复用的 Coder、Memory、搜索和文档审阅组件

怎么跑起来

需要 Go 1.26.3。跨语言 Protocol 的 TypeScript SDK 还需要 Node.js。

git clone https://github.com/colinagent/opagent.git
cd opagent
go test ./opagent-runtime/... ./opagent-server/...
scripts/start-web.sh

默认打开 ~/.opagent/workspace,没有就会自动创建。在 Models 里填好 Token、Base URL 和 Model ID,就可以跟默认的全权限 Workspace Agent 对话。Server 只听 127.0.0.1:19531

源码

GitHub:https://github.com/colinagent/opagent

当前还是 v0.1:一个进程里一个 Runtime 实例。公开 Go 模块各自发版本,Protocol 变更按规范里的兼容规则走。