we0agent

Troubleshooting

Troubleshooting

常见安装、运行、事件、持久化、resume、snapshot 和工具问题的排查路径。

这篇文档按「症状 → 原因 → 处理」组织。排查时先确认你正在运行哪个示例或业务入口,再看对应分类。

排查总图

Mermaid
Rendering diagram...

安装失败

症状常见原因处理
uv add 无法拉取私有 GitLab本机 SSH 没有权限或端口不可达先运行 git ls-remote ssh://git@gitlab.biubbmk.cn:2233/ai/we0-agent-sdk.git
ModuleNotFoundError: we0agent没有在业务项目安装依赖,或虚拟环境不对uv pip listuv run python -c "import we0agent" 验证当前环境。
Python >=3.12 相关错误当前解释器版本低uv python install 3.12 或切换项目 Python。

模型或 API key 报错

症状常见原因处理
provider 返回认证错误OPENAI_API_KEY / 其他 key 未设置或设置到错误 shell在运行命令前 export OPENAI_API_KEY="...",再用同一个 shell 执行 uv run ...
Unsupported provider familyProviderCard.family 不在支持列表当前支持 openaianthropicgoogle_genaideepseek
访问 context_windowmax_output_tokensValueErrorModelCard 未声明能力,底层 profile 也缺失ModelCard 显式填写 contextmax_tokens

stream 没有输出

先确认事件处理器是否只处理了某一种事件。stream() 返回的是统一 We0Event,文本只是其中一种。

async for event in agent.stream(...):
    print(event["type"])

常见原因:

  • 模型没有产出文本,而是先产出 tool-input-*tool-call
  • 事件处理代码用了属性访问 event.type,但事件是 TypedDict,必须用 event["type"]
  • stream() 配置了结构化输出。structured_output.output_schema 非空时只能用 invoke()
  • abort 事件被复用且已经 set,导致运行一开始就被中断。

prompt / resume 参数错误

报错原因处理
messages is required in prompt mode.mode="prompt" 但没有传 messagesprompt 模式必须追加新用户消息。
messages is not allowed in resume mode.mode="resume" 还传了 messagesresume 模式只恢复旧会话,不追加消息。
resume 没有额外事件会话本身已经是干净完成态只有未完成 assistant 或工具状态才需要恢复。

持久化问题

症状常见原因处理
SQLite 表不存在忘记调用 await persistence.initialize_schema()首次使用 SQL 持久化前先建表。
resume 找不到历史prompt 和 resume 使用了不同 session_id 或不同 persistence 实例确保同一个 session_id 和同一个数据库文件。
文件路径混乱示例工作区没有清理,或业务代码使用相对路径仓库示例会清理自己的工作区;业务侧建议传绝对路径。

工具执行失败

工具失败通常有三类:

类型表现处理
参数校验失败Pydantic 报字段缺失或类型不对parameters schema 的描述,让模型更容易生成合法输入。
工具内部异常tool-error 事件在工具 handler 里捕获业务错误,返回更可读的 message。
副作用冲突文件被并发写、命令互相影响对有副作用工具设置 ToolExecutionPolicy(is_concurrency_safe=False, has_side_effects=True)

生产环境不要直接暴露 demo 里的 bash 工具,除非外层有严格沙箱和权限控制。

snapshot / revert 问题

症状常见原因处理
没有 patch没有注入 ports.session_revert,或工具没有改变 worktree检查 SessionRevertService(...) 和工具写入目录。
snapshot 仓库污染业务仓库自定义 SnapshotState 指向业务 .git使用 file_system.snapshot_state(worktree=...) 生成内部 gitdir。
revert 失败提示 busy会话正在运行先 abort 或等待 session idle,再执行 revert。

文档图表不显示

当前 docs-site 支持 mermaidplantuml / puml / umldot / graphvizvega / vega-lite

症状常见原因处理
代码块没有变成图fence 名称不在支持列表检查是否写成了 text 或拼错语言名。
PlantUML 不显示无法访问 PlantUML 公共 SVG endpoint内网部署时改成自建 PlantUML/Kroki。
Vega 图不显示无法访问 jsDelivr CDN 或 JSON 不合法确保 spec 是合法 JSON,并考虑本地托管 Vega runtime。

图表代码块使用标准 fence 名称即可被渲染。

最小复现模板

遇到不确定问题时,先缩到这个形态:

import asyncio

async for event in agent.stream(
    abort=asyncio.Event(),
    session_id="debug-session",
    messages=[user_message("只回复 ok")],
    max_steps=1,
):
    print(event)

如果这个能跑,问题通常在工具、持久化、snapshot 或业务事件处理层;如果这个也不能跑,优先查模型、API key、安装和 We0Agent 构造参数。

On this page