we0agent

Concepts

Concepts

we0agent 的核心心智模型:一次请求如何从业务输入进入 agent loop,并在模型、工具、事件、持久化和扩展端口之间流转。

这篇文档回答「SDK 里这些对象为什么存在、怎么协作」。如果你只是想先跑起来,先看 Quickstart;如果你要开始接业务系统,这篇能帮你判断该接哪个扩展点。

一张图

Mermaid
Rendering diagram...

长期定义与单次请求

We0Agent 保存的是长期可复用的 agent 定义:名字、模型、系统提示词、工具、持久化、hooks 和 ports。真正变化的输入放在每次 stream()invoke() 里:session_idmessagesmodeabortmetadata

层级对象生命周期
Agent 定义We0AgentWe0ModelSystemPrompt、tools、hooks、ports通常随服务进程长期存在
Turn 输入session_idmessagesmodeabortmetadata每次请求创建
Run 结果We0Event stream 或 We0TurnResult每次请求消费
会话状态session、message、part、tool state、summary、snapshot hash由 persistence 和 ports 保存

Agent Loop

一次 prompt 模式请求通常按这个顺序执行:

Mermaid
Rendering diagram...

模型可以在一个 turn 里触发多个 step。每个 step 都可能输出文本、请求工具、执行工具、继续下一步,直到模型停止、达到 step 上限、触发压缩、出错或被 abort。

主要集成边界

边界你什么时候关心对应文档
模型边界要接 OpenAI / Anthropic / Google / DeepSeek 或自建兼容网关We0Model
工具边界要让模型读写文件、调用业务 API、执行命令或查询数据库AnyToolDefinition
事件边界要把 token、工具状态、错误、session 状态推到 UI 或日志StreamingEvents
存储边界要保存会话、resume、回滚或跨进程读取历史Persistence
中断边界要从 UI 或任务管理器打断正在运行的请求Abort
运行时边界要接状态管理、快照、回滚、事件 hubBuilt-insSnapshotsRevert
hook 边界要介入模型请求或工具执行前后Hooks

mode:prompt 和 resume

mode="prompt" 表示追加新用户消息并开始一轮新运行;mode="resume" 表示不追加消息,而是从已有会话中恢复未完成的 assistant/tool 状态。

Mermaid
Rendering diagram...

两个模式互斥:prompt 必须传 messagesresume 必须不传 messages。这是 SDK 最重要的请求级约束之一。

选 stream 还是 invoke

方法适合场景返回
stream()UI 打字机效果、工具进度、实时状态、调试事件序列AsyncIterator[We0Event]
invoke()批处理、后台任务、只关心最终状态、结构化输出We0TurnResult
build_request()需要直接拿 We0TurnRunner,同时协调事件流和最终结果We0TurnRunner

默认建议:业务 UI 用 stream(),离线任务用 invoke()

下一步

On this page