Observed since 20 Oct, 21:52 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
面向学习者的 AI Agent 执行调试器
面向学习者的 AI Agent 执行调试器。3 行代码接入 LangGraph,自动生成教学注释,支持 LLM 节点安全回放。
2025-2026 年 AI Agent 进入生产部署爆发期,但 Gartner 报告显示 88% 的 Agent 试点项目无法跨越生产环境鸿沟,首要原因是缺乏可观测性与调试能力。
现有 Agent 可观测工具(LangSmith、Langfuse、Phoenix)都面向资深工程师和企业场景,初学者上手门槛高,且不解释"Agent 为什么这么调"。
AgentEval 面向学习者和初学者,让你看懂 Agent 每一步在干什么。
pip install 即用,不需要 Docker、不需要装数据库# 推荐:PyPI 安装(含 Web 界面与示例依赖)
pip install "agenteval-debugger[web,examples]"
# 或从源码安装
git clone https://github.com/Xhan-985/agent-eval-platform.git
cd agent-eval-platform
pip install -e ".[web,examples]"
只使用 SDK(不打开 Web 界面)时 pip install agenteval-debugger 即可;[web] 用于页面,[examples] 用于运行示例。
💡 推荐在独立虚拟环境中安装,避免与机器上已有的包(如 TensorFlow、旧版 protobuf 等)产生依赖冲突:
# Windows python -m venv agenteval-venv agenteval-venv\Scripts\activate pip install "agenteval-debugger[web,examples]"# macOS / Linux python -m venv agenteval-venv source agenteval-venv/bin/activate pip install "agenteval-debugger[web,examples]"国内网络环境可用镜像加速(清华源示例):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "agenteval-debugger[web,examples]"
import agenteval
agenteval.init(verbose=True) # verbose=True 时自动打印带注释的 trace
graph = build_my_langgraph() # 你的 LangGraph
traced_graph = agenteval.wrap(graph) # 一行包装,自动注入采集
result = traced_graph.invoke({"messages": [("user", "LangGraph 是什么?")]})
# 自动输出带教学注释的 trace
就这么简单,3 行代码接入。默认静默采集,任何时刻可用 agenteval.last_trace() 拿到最近一次执行的 trace JSON。如果你的调用函数签名包含 **kwargs,也可以用 @agenteval.trace 装饰器(详见 开发交接文档)。
给 Agent 命名:列表页的"Agent"列默认显示 LangGraph 图的默认名(LangGraph),用 agenteval.wrap(graph, name="我的搜索Agent") 可以给每次执行的 agent 起个有意义的名字,方便在列表里区分不同任务。
Web 详情页选中 LLM span 后,可修改 input 并重跑;tool span 只回放录播响应,不会真实执行(避免发邮件、写库等副作用)。
import agenteval
from langchain_openai import ChatOpenAI
agenteval.init(
verbose=True,
llm_factory=lambda model_name: ChatOpenAI(model=model_name, api_key="sk-..."),
)
llm_factory 接收模型名并返回一个 ChatModel 实例。不配置时 replay 会给出明确提示,其他功能不受影响。
对任意一条(或两条)trace 运行诊断 Agent,输出中文 Markdown 报告:
import agenteval
from langchain_openai import ChatOpenAI
agenteval.init(
llm_factory=lambda model_name: ChatOpenAI(
model=model_name,
base_url="https://api.deepseek.com",
api_key="sk-...",
),
)
report = agenteval.diagnose("你的-trace-id", question="为什么这一步报错?")
print(report)
也可以带第二个 trace_id 让诊断 Agent 做对比诊断(内部使用 compare_traces 工具)。
Web 侧边栏"AI 诊断"页提供同样的能力,无需写代码。要求模型支持 tool calling
(DeepSeek / OpenAI 兼容模型均可);未配置 llm_factory 时页面和 API 都会给出明确提示。
from agenteval.export.langfuse import export_to_jsonl
export_to_jsonl("agenteval.db", "你的-trace-id", "export.jsonl")
生成 Langfuse 字段命名(traces + observations)的 JSONL 文件,方便迁移到 Langfuse 生态。
OpenAI 兼容接口只需配置 base_url:
agenteval.init(
llm_factory=lambda model_name: ChatOpenAI(
model=model_name,
base_url="https://api.deepseek.com", # 默认 OpenAI 端点可省略
api_key="sk-...",
),
)
DeepSeek 模型名形如 deepseek-v4-flash / deepseek-v4-pro。API key 建议放环境变量 OPENAI_API_KEY 或本地 .env(已被 gitignore),不要写进代码。
agenteval-web 启动时会自动读取当前目录的 .env;也可以把
OPENAI_BASE_URL=https://api.deepseek.com 写进 .env,Web 侧边栏会自动带出,
避免每次手动改 Base URL。
安装时带上 [web] 依赖后,一条命令即可打开可视化页面:
agenteval-web # 或 python -m agenteval web
浏览器会自动打开 http://localhost:8501,页面包含:
注意事项:
agenteval.db(与运行 Agent 时一致);如果 Agent 在其他目录运行,用环境变量 AGENTEVAL_DB=/path/to/agenteval.db 指定,或在页面侧边栏手动填写数据库路径init(llm_factory=...)见 examples/ 目录:
react_agent_trace.py — ReAct Agent 完整示例(fake / real 双模式)replay_demo.py — 安全 replay 演示(fake / real 双模式)| 版本 | 功能 | 状态 |
|---|---|---|
| v0.1.0 | 采集 + 教学注释 + LLM 节点 replay(MVP) | ✅ MVP 完成 |
| v0.2.0 | 诊断 Agent(AI 助教)+ trace diff + Langfuse 导出 | ✅ 完成 |
| v0.3.0 | 多框架支持(OpenAI Agents SDK) | 规划中 |
| v0.4.0 | 性能分析 | 规划中 |
| 能力 | Langfuse | Phoenix | AgentEval |
|---|---|---|---|
| 开源 | ✅ | ✅ | ✅ |
| 教学化注释 | ❌ | ❌ | ✅ |
| 面向学习者 | ❌ | ❌ | ✅ |
| 安全 replay | 部分 | ❌ | ✅ |
| 3 行代码接入 | 5+ 行 | 5+ 行 | ✅ |
| 零配置 | 需 Docker | 需配置 | pip install 即用 |
invoke,不支持 ainvoke / stream(调用会明确报错)欢迎 Issue 和 PR。开发前请阅读 开发交接文档。
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.0 | 15 Aug 2026 | 7 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 21:52 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:119fa6d5dff2cfa46571349331e2f2267e777bc7a9678164ccad7bd58faa8755