we0agent

Examples

Examples

可直接运行的仓库示例索引:每个示例验证一个 SDK 能力,并说明运行命令、产物和应该继续阅读的文档。

example/ 目录只放可以直接运行的 agent 示例。每个示例都会创建并清理自己的工作区,产物统一写入 workspace/example/<example_name>/,并按示例能力生成对应文件和目录,因此可以反复运行。

运行前准备

uv sync
export OPENAI_API_KEY="sk-..."

如果使用 Anthropic、Google 或 DeepSeek provider,请设置对应 provider 的 API key。模型配置方式见 We0Model

示例地图

Mermaid
Rendering diagram...
示例运行命令学到什么
example.stream_agentuv run python -m example.stream_agent最小 agent、模型、工具、hooks、事件处理。
example.persistence_featureuv run python -m example.persistence_featureSQLite 持久化、建表、会话落库。
example.resume_featureuv run python -m example.resume_feature用同一个 session_id 从已有会话恢复。
example.snapshot_featureuv run python -m example.snapshot_feature给会改文件的 agent 注入 snapshot tracker。
example.conversation_revert_featureuv run python -m example.conversation_revert_feature使用 session revert service 回滚对话和文件状态。
example.abort_featureuv 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/

继续阅读:QuickstartStreamingAnyToolDefinition

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/

继续阅读:SnapshotsBuilt-ins

conversation_revert_feature

演示内建 SessionRevertServiceBuiltinSessionRevertRuntime:先构造一段会话,再依次执行 revertunrevertcleanup

uv run python -m example.conversation_revert_feature

继续阅读:RevertBuilt-insSnapshots

abort_feature

演示由 AbortEventManager 托管中断事件,并在外部按 session_id 触发 abort.set()

uv run python -m example.abort_feature

继续阅读:AbortResume

如何复制到业务项目

建议按这个顺序迁移,而不是一次搬走全部示例代码:

  1. 先用业务自己的模型配置构造 We0Model
  2. SystemPrompt、业务工具和 We0Agent 形成最小 agent。
  3. 把事件流接到业务侧 UI、日志或 WebSocket。
  4. 只迁移需要的工具定义,不要把 demo 的 bash 工具直接暴露到生产环境。
  5. 需要持久化、快照或回滚时,按对应 reference 使用 SDK 公开类,例如 SqlPersistenceLocalFileSystemRuntimeSessionRevertService

On this page