Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

orbit-agent

用 Go 从零实现的 Agent 执行引擎: DAG 状态机 + 事件溯源持久化 + 双路径工具沙箱 + MCP 协议 + 上下文管理。

定位: 以工程深度自证 — 崩溃恢复、幂等、安全边界,每个声称都有实测数据和可复现的测试。

架构

Agent 执行引擎 (orbit-agent)
├── internal/core     DAG 引擎: 事件溯源/调度/重放/HITL/动态追加/幂等/重试补偿
├── internal/store    事件存储: Memory(测试) + Redis Stream
├── internal/sandbox  双路径沙箱: wazero(WASM,12.7ms 稳态) + 容器(cgroup+seccomp)
├── internal/mcp      MCP 自实现: JSON-RPC 2.0 + stdio/Streamable HTTP + client/server
├── internal/memory   Context 管理: 分层预算+摘要降级(tiktoken-go) + Qdrant 语义记忆
├── internal/llm      DeepSeek client
├── internal/agent    OJ 自动解题 demo: Planner/Executor/CodeVerifier
├── cmd/agentd        CLI: run/recover/resume/inspect
├── cmd/mcpd          MCP server 入口
├── cmd/agentdemo     OJ 解题 demo 入口
└── benchmarks/       WASM vs 容器冷启动、重放吞吐、token 节省率

核心能力

  • 持久化执行: 节点执行事件溯源至 Redis Stream,进程崩溃后重放日志重建状态并从断点继续,副作用以幂等键去重
  • 动态 DAG: 运行中追加节点 = 写事件;ReAct 循环建模为动态追加观察/思考/行动节点
  • Human-in-the-loop: 节点挂起 → 状态持久化 → CLI approve / webhook 恢复,重复审批幂等
  • 运行时中止: 工作流级 ABORT_REQUESTED 事件 + 投影推导节点级 ABORTED;graceful(在途执行跑完)、补偿照常触发、幂等 —— cmd/agentopsd 提供 HTTP 控制面(register/append/resume/abort/status)
  • 双路径沙箱: WASM 纯计算工具(wazero,无 syscall 面,编译缓存预热后 12.7ms/次);Python/Bash 走 cgroup+namespace+seccomp 容器沙箱(native 档 50-200ms)
  • MCP 自实现: JSON-RPC 2.0 + stdio/Streamable HTTP,与官方 SDK 双向互操作测试
  • OJ 自动解题 demo: Planner 拆解 → Executor 写码 → 沙箱运行 → Verifier 比对,失败反馈后 ReAct 重试 = 动态追加 DAG 节点,崩溃后 Recover 可续解

快速开始

go build ./...
go test ./... -race

# 运行示例工作流
go run ./cmd/agentd run --workflow demo/diamond
# 观察 HITL 挂起 → 审批
go run ./cmd/agentd resume <wf-id> <node-id> approve
# 模拟崩溃后恢复
go run ./cmd/agentd recover <wf-id>

# OJ 自动解题 demo(真实 DeepSeek API)
export DEEPSEEK_API_KEY=sk-...
go run ./cmd/agentdemo            # 全 5 道题
go run ./cmd/agentdemo --id p1    # 单题

文档

  • 设计文档 — 架构、事件模型、调度/重放协议、安全边界、Context 分层预算、Abort、benchmark 实测

联合项目: AgentOps(双进程 AgentOps)

本仓库的引擎能力作为"手"被消费: 见同级目录 agentops/ —— Python 智能面(告警接收 → LangGraph 规划 → HITL 审批 → 报告)经 cmd/agentopsd 控制面(register/append/resume/abort/status)+ MCP + Redis Stream 三接口驱动本引擎。共享契约在 agentops docs/interface.md

基准数据(实测,i7-14700HX,go test ./benchmarks -bench .)

指标 数据
重放 RTO(300 事件 / 3000 事件) 83µs / 935µs
调度吞吐(1000 节点串联 DAG) ~3000 nodes/s
WASM 稳态执行(缓存命中,无 syscall 面) 12.7ms/次
容器沙箱(本机 plain 档 / native 档典型) 13.2ms / 50-200ms
Context 剪枝 token 节省率(60 轮 × 12KB) 98.7%

About

用go实现的Agent执行引擎

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages