设计哲学
薄内核 + 可插拔挂点 + 零业务语义 + 跨语言行为契约
内核对「告警 / 报销 / 考勤 / 采购」一概不知。你把某个领域的工具和知识注册进来,它就成为那个领域的智能助手。内核只管「怎么编排」,业务管「编排什么」——这正是它能服务任意领域的根本原因。
嵌入式库
无中心化服务
按需开能力
零业务语义
能力全景
Prompt · Context · Harness
Prompt · Context · Harness
三个工程维度都做厚
这是相对「裸调一次大模型」的核心优势——不是更聪明的提示词,而是更扎实的工程。
Prompt Engineering
怎么把话说好。
- Prompt 模板 {{var}} 运行时替换
- Cache 友好排序,命中模型前缀缓存
- 原生 + 兜底双路结构化输出
- 流式降噪剥离推理块与工具噪音
Context Engineering
往上下文里放什么、怎么管。
- 会话记忆(关键词 / 向量 / 落盘恢复)
- RAG 知识检索,产出引用可溯源
- 历史摘要压缩,长会话不爆 context
- 上下文预算 + 多源引用追踪
Harness Engineering
运行时脚手架——最强项。
- 工具循环:多轮、并行、有序回填、自动去重
- HITL 暂停/恢复、Hooks 护栏、运行级熔断
- 真·流式、Tracer 可观测、健壮重试
- 多 Agent DAG、多模型路由、MCP 接入
整体架构
分层清晰,挂点可插拔
门面聚合所有能力,编排与评估在上,内核循环居中,工具注册与协议适配在下,南向接入你自有的工具与 MCP。
门面 Facade一行 import 即用,聚合所有能力
↓
编排 Orchestr多 Agent / DAG 工作流
评估 Evalgolden 任务 + 质量回归
↓
内核 Core · 工具调用循环(框架的心脏)
Hooks 护栏
Memory 记忆
Retriever 检索
Compactor 压缩
HITL 暂停
↓
工具注册 Registry注册 · 并行执行 · 校验 · 超时/截断
协议适配 LLMOpenAI 兼容,委托各语言生态
↓
南向接入接入方自有工具 & MCP(HTTP / stdio)
贯穿全栈:types 数据契约 · conformance 跨语言一致性合同 · run-id 排障关联
快速开始
几行代码,
几行代码,
拥有一个完整 Agent
同一套框架,换一批工具与知识即换一个领域。下面分别是 IT 运维(Go)与财务(Python)两个领域的最小示例。
* 代码为接口示意,网关地址与密钥以占位符表示。
import ( "context" superagent "github.com/tokengravity/superagent" "github.com/tokengravity/superagent/llm" ) ag := superagent.New(superagent.Config{ LLM: llm.NewClient(llm.Config{APIUrl: "https://your-gateway/v1", APIKey: "sk-...", Model: "your-model"}), SystemPrompt: "你是 {{product}} 的运维助手,需要数据时调用工具。", PromptVars: map[string]string{"product": "支付系统"}, Memory: superagent.NewInMemoryMemory(3), // 会话记忆 Hooks: superagent.Hooks{ // 护栏:危险操作走人工审批 BeforeTool: func(ctx context.Context, key, args string) (string, bool) { if key == "delete_db" { return "危险操作,需人工审批", true } return "", false }, }, }) ag.Tools().Register(superagent.ToolSpec{Key: "restart_pod", Description: "重启异常 pod", Fn: func(ctx context.Context, args map[string]any) (superagent.SkillResult, error) { return superagent.SkillResult{Content: "已重启 3 个 pod"}, nil }}) res, _ := ag.Run(context.Background(), "重启支付服务的异常 pod", nil) fmt.Println(res.FinalContent)
from superagent import Agent, Config, ToolSpec, SkillResult, Hooks, InMemory from superagent.openai_client import OpenAIClient ag = Agent(Config( llm=OpenAIClient(api_url="https://your-gateway/v1", api_key="sk-...", model="your-model"), system_prompt="你是 {{dept}} 的财务助手,依据制度处理报销与查询。", prompt_vars={"dept": "研发中心"}, memory=InMemory(3), # 会话记忆 # 大额付款不直接执行,挂人工审批门 hooks=Hooks(before_tool=lambda ctx, k, a: ("大额付款需财务经理审批", True) if k == "make_payment" else ("", False)), )) ag.tools().register(ToolSpec(key="submit_reimbursement", description="发起一笔报销", fn=lambda ctx, args: SkillResult(content="报销单 R2026-0012 已创建,待审批"))) res = ag.run(None, "帮我报销上周差旅 2300 元") print(res.final_content) # 异步 + 流式(FastAPI 友好) async for ev in ag.arun_stream(None, "..."): if ev.kind == "delta": print(ev.delta, end="")
能力矩阵
Go = Python,逐字段对等
两种语言各自原生实现,由跨语言一致性合同守门——同输入逐字段一致,否则 CI 红灯。
| 能力 | Go | Python | 能力 | Go | Python |
|---|---|---|---|---|---|
| 工具循环 | ✓ | ✓ | HITL 暂停/恢复 | ✓ | ✓ |
| 真·流式 + StreamFilter | ✓ | ✓ | 历史摘要压缩 | ✓ | ✓ |
| 健壮性(超时/重试/截断/并发) | ✓ | ✓ | RAG 知识检索 | ✓ | ✓ |
| Hooks / 护栏 | ✓ | ✓ | 向量记忆 | ✓ | ✓ |
| 多模型路由 | ✓ | ✓ | Prompt 模板 | ✓ | ✓ |
| 多 Agent DAG 编排 | ✓ | ✓ | 原生结构化输出 | ✓ | ✓ |
| MCP 接入(HTTP + stdio) | ✓ | ✓ | Eval 评估框架 | ✓ | ✓ |
| 畸形 tool_call 自动修复 | ✓ | ✓ | 单工具重试 / 运行级熔断 | ✓ | ✓ |
| Tracer 可观测 | ✓ | ✓ | 持久化记忆(落盘恢复) | ✓ | ✓ |
| 动态子 Agent(AgentTool) | ✓ | ✓ | 异步 API(arun / 流式) | — | ✓ |
细化场景
同一能力,跨领域复用
每个能力都能在不同领域里落地——这正说明框架与领域无关。
异步人工审批
高风险工具返回审批请求,挂起为可序列化快照,人工决策后续跑。
HITL删库/大额付款
制度接地问答
按你们自己的制度/手册回答,检索注入上下文,引用可溯源。
RAGrunbook/政策
长流程不爆 context
超限时自动把早期轮次摘要成要点,保留关键结论,会话长期持续。
历史压缩长排障/月结
多 Agent 流水线
「分诊 → 并行处理 → 汇总」,上游结论自动流入下游。
DAG多模型路由
结构化对接下游
约束 JSON 输出对接业务系统,脏输出自动修复重试。
结构化输出工单/报销单
成本与延迟优化
缓存友好排序、usage 计量、把简单任务路由到便宜模型。
前缀缓存配额
质量回归调优
golden 用例 + LLM 评判,改 prompt/工具前后对比通过率。
Eval不退化
复用既有工具
MountMCP(HTTP / stdio)实时挂载,零改造接入团队已有系统。
MCP脚本/内部 API
把可靠的 Agent 能力,嵌入你的系统
无论你用 Go 还是 Python,无论你的领域是运维、HR、财务还是客服,SuperAgent 都能以一致的行为为你的系统注入 Agent 能力。