Examples
Examples
可直接运行的仓库示例索引:每个示例验证一个 SDK 能力,并说明运行命令、产物和应该继续阅读的文档。
example/ 目录只放可以直接运行的 agent 示例。每个示例都会创建并清理自己的工作区,产物统一写入 workspace/example/<example_name>/,并按示例能力生成对应文件和目录,因此可以反复运行。
运行前准备
uv sync
export OPENAI_API_KEY="sk-..."如果使用 Anthropic、Google 或 DeepSeek provider,请设置对应 provider 的 API key。模型配置方式见 We0Model。
示例地图
| 示例 | 运行命令 | 学到什么 |
|---|---|---|
example.stream_agent | uv run python -m example.stream_agent | 最小 agent、模型、工具、hooks、事件处理。 |
example.persistence_feature | uv run python -m example.persistence_feature | SQLite 持久化、建表、会话落库。 |
example.resume_feature | uv run python -m example.resume_feature | 用同一个 session_id 从已有会话恢复。 |
example.snapshot_feature | uv run python -m example.snapshot_feature | 给会改文件的 agent 注入 snapshot tracker。 |
example.conversation_revert_feature | uv run python -m example.conversation_revert_feature | 使用 session revert service 回滚对话和文件状态。 |
example.abort_feature | uv run python -m example.abort_feature | 用 abort event 打断正在运行的 agent。 |
stream_agent
最小流式示例。它构造 We0Agent,注册读写文件、编辑文件和 bash 工具,再消费 agent.stream(...) 返回的事件。
uv run python -m example.stream_agent产物:
workspace/example/stream_agent/
worktree/继续阅读:Quickstart、Streaming、AnyToolDefinition。
persistence_feature
SQLite 持久化示例。示例会初始化 schema,然后把会话、消息和工具结果写入本地数据库。
uv run python -m example.persistence_feature产物:
workspace/example/persistence_feature/
session.sqlite
worktree/继续阅读:Persistence。
resume_feature
先创建一段完整会话,再用同一个 session_id 进入 mode="resume"。这个示例验证 resume 的入口和参数约束。
uv run python -m example.resume_feature继续阅读:Resume。
snapshot_feature
注入 SnapshotTracker,让 agent 在写文件后记录 git-backed snapshot,并在会话中保留可查询的变更信息。
uv run python -m example.snapshot_feature产物:
workspace/example/snapshot_feature/
session.sqlite
worktree/
runtime/conversation_revert_feature
演示内建 SessionRevertService 和 BuiltinSessionRevertRuntime:先构造一段会话,再依次执行 revert、unrevert 和 cleanup。
uv run python -m example.conversation_revert_feature继续阅读:Revert、Built-ins、Snapshots。
abort_feature
演示由 AbortEventManager 托管中断事件,并在外部按 session_id 触发 abort.set()。
uv run python -m example.abort_feature如何复制到业务项目
建议按这个顺序迁移,而不是一次搬走全部示例代码:
- 先用业务自己的模型配置构造
We0Model。 - 用
SystemPrompt、业务工具和We0Agent形成最小 agent。 - 把事件流接到业务侧 UI、日志或 WebSocket。
- 只迁移需要的工具定义,不要把 demo 的 bash 工具直接暴露到生产环境。
- 需要持久化、快照或回滚时,按对应 reference 使用 SDK 公开类,例如
SqlPersistence、LocalFileSystemRuntime和SessionRevertService。