跳转至

场景 Demo

这里提供什么:22 个可运行程序,覆盖从 SDK 单次调用到生产 Store 和 Sandbox provider。13 个核心 Demo 不需要模型 API。

教程解释“为什么这样设计”;本页帮助你快速找到一份与真实业务场景接近的可运行骨架。所有源码位于仓库 examples/

建议学习顺序

flowchart LR
    T[Direct Tools] --> R[Canonical Runtime]
    R --> W[Parallel Workflow]
    W --> M[Multi-Agent]
    M --> A[Approval Resume]
    A --> Q[Quality Repair]
    Q --> S[Sandbox & Stores]
    S --> P[Web / Production]

1. SDK 与模型调用

业务场景 Demo 你会看到什么
一次性分析或编码任务 sdk_single_task.py run_id、结果和 Session
聊天式连续任务 sdk_streaming_session.py text/tool/done chunk 与多轮上下文
PR/目录只读审查 sdk_read_only_review.py 仅向模型暴露只读 Tool
业务系统接入 Agent sdk_custom_tool.py 自定义 Tool、参数和 before hook
截图或设计稿分析 sdk_multimodal.py 图片 MIME、base64 payload 与 MultimodalPrompt
实时问题与危险操作确认 sdk_interaction.py interaction_request 与 approve/reject
无模型确定性自动化 sdk_direct_tools.py 直接读文件、glob 和 grep

真实模型 Demo 使用现有 Cody 配置。最小环境变量:

export CODY_MODEL='deepseek-chat'
export CODY_MODEL_BASE_URL='https://api.deepseek.com/v1'
export CODY_MODEL_API_KEY='your-api-key'
uv run python -m examples.sdk_single_task "解释这个项目的架构"

2. Skills 与 MCP

场景 Demo 外部依赖
项目级操作规范 skill_loading.py
本地工具服务 mcp_stdio.py 无,启动仓库内确定性 MCP server
项目长期知识 project_memory.py 无,写入、查询并清理隔离的项目记忆
uv run python -m examples.skill_loading
uv run python -m examples.mcp_stdio
uv run python -m examples.project_memory

3. Canonical Runtime 与 Workflow

场景 Demo 核心证据
统一事件和产物 runtime_events.py RunEvent、Artifact、Checkpoint、Metrics
并行诊断与汇总 workflow_parallel.py 两分支同时启动并确定性 Join
Specialist 团队 multi_agent_team.py capability routing、任务 DAG、Agent Artifact
人工发布闸门 approval_resume.py SQLite waiting、批准、新 Runtime resume
自动修复测试失败 quality_repair.py Gate 失败、fallback repair、有限重检
失败恢复与探索分支 runtime_retry_fork.py failed Run retry、历史 Checkpoint fork 与 lineage

这五个 Demo 都使用确定性 backend,不调用模型:

uv run python -m examples.runtime_events
uv run python -m examples.workflow_parallel
uv run python -m examples.multi_agent_team
uv run python -m examples.approval_resume
uv run python -m examples.quality_repair
uv run python -m examples.runtime_retry_fork

4. Sandbox 场景

场景 Demo 说明
本地 policy 与 snapshot sandbox_local.py 展示 env 过滤和生命周期;local-policy 本身不是 OS 安全边界
远程供应商接入 remote_sandbox_adapter.py 实现完整 transport contract,不假装存在托管服务
容器隔离执行 container_sandbox.py Docker/Podman、只读根、禁网、CPU/内存/PID 限制
uv run python -m examples.sandbox_local
uv run python -m examples.remote_sandbox_adapter

docker pull python:3.13-slim
uv run python -m examples.container_sandbox --engine docker

Linux Bubblewrap 与 macOS Seatbelt 的配置、可用性探测和 fail-closed 规则见 Sandbox 指南

5. Store 与 Artifact

场景 Demo 说明
catalog/payload 分层 artifact_storage.py 默认 filesystem;--backend s3 接 S3/MinIO
多进程共享状态 postgres_shared_state.py 两个 Store bundle 观察同一 Run 和 Control mutation
uv run python -m examples.artifact_storage

export CODY_POSTGRES_DSN='postgresql://user:password@127.0.0.1:5432/cody_demo'
uv run python -m examples.postgres_shared_state

生产凭据、TLS、备份、bucket policy 和迁移仍由部署平台负责,参见 生产部署指南

6. Web 与跨界面

web_runtime_client.pyPOST /runtime/runs 创建 Run,轮询共享 Store,并读取 canonical timeline:

# 终端一
export CODY_AUTH_API_KEY='local-demo-key'
cody-web run --port 8000

# 终端二
export CODY_AUTH_API_KEY='local-demo-key'
uv run python -m examples.web_runtime_client "生成仓库测试建议"

验证策略

  • 离线 Demo 会在测试套件中真正执行,而不只是检查语法。
  • 外部服务 Demo 至少执行模块导入和 --help smoke test。
  • 文档 CI 检查本页链接、代码块、生成页面锚点和静态资源。
  • Demo 使用临时目录或唯一 Run ID,避免覆盖项目数据。