LangChain 项目 (agents-cli)
该代理是一个编译后的 LangGraph 图,从 app/agent.py 导出为 root_agent。没有 google.adk 依赖,也没有 ADK 运行器。其他 google-agents-cli-* 技能假设使用 ADK;当它们描述代理本身时,此技能优先。
实验性,且 Agent Runtime 功能已降级。 部署到 cloud_run 或 gke。在 agent_runtime 上,应用程序可以提供服务,但 publish gemini-enterprise 被拒绝,控制台 playground 无法调用它,并且控制台会话/跟踪保持为空:这三者都希望使用此项目不提供的 ADK reasoning_engine 路由。在推荐之前请先说明这一点。
ADK 指南在此处的映射关系
| ADK 指南 | 本项目 |
|---|---|
LlmAgent、Agent、google.adk.tools | langchain.agents.create_agent、作为工具的纯 Python 函数,或任何编译后的 StateGraph |
adk web、adk run | agents-cli playground (运行 langgraph dev) |
agents-cli run 背后的 ADK 运行器 | agents-cli run 在进程内调用图 |
agents-cli eval dataset synthesize、eval optimize | 不可用:两者都通过 ADK 驱动代理。命令会说明并退出 |
在 app/agent.py 中添加 LlmAgent | 修改 app/agent.py 中的图;保持名称 root_agent |
契约
无论你在其内部构建什么,请保留以下两项:
app/agent.py导出root_agent,这是一个带有messages状态的编译后图。调用者只能使用root_agent.invoke({"messages": [...]})和root_agent.astream(stream_mode="messages")。app/fast_api_app.py暴露app。每个部署目标都运行uvicorn app.fast_api_app:app。
添加工具意味着编写一个带有文档字符串的类型化函数,并将其传递给 tools=[...]。切换框架(LangGraph StateGraph、deepagents.create_deep_agent)只需重写 app/agent.py。不支持预 1.0 版本的 LangChain(LCEL 链、AgentExecutor):这些不是编译后的图。
命令
agents-cli install # uv sync
agents-cli playground # langgraph dev, 端口 8080
agents-cli run "hello" # 在进程内调用图
agents-cli eval generate --dataset tests/eval/datasets/basic-dataset.json -o tests/eval/output/
agents-cli eval grade --traces tests/eval/output/<dataset>.json --config tests/eval/eval_config.yaml
agents-cli deploy # 保持不变
agents-cli scaffold enhance -d cloud_run --cicd-runner github_actions # 稍后添加基础设施
playground、run 和 eval generate 被项目根目录下的 agents-cli-extension.yaml 覆盖。在任何命令前加上 AGENTS_CLI_DISABLE_OVERRIDES=1 可使用内置命令。
提供服务
仅 A2A:JSON-RPC 位于 POST /a2a/app,信息卡位于 /a2a/app/.well-known/agent-card.json,健康检查位于 /health。令牌流来自 astream(stream_mode="messages")。
常见错误
- 重命名
root_agent或app,这会破坏run、评估和部署。 - 使用
eval dataset synthesize或eval optimize:它们需要 ADK。将用例写入tests/eval/datasets/并使用eval generate+eval grade。 - 期望
/run_sse或 ADK 会话路由;此服务器提供 A2A。 - 在没有
AGENTS_CLI_DISABLE_OVERRIDES=1的情况下对已部署的代理运行agents-cli run --url ...,这会导致调用本地图而不是远程图。 run和eval generate通过 Vertex AI 使用 ADC 调用 Gemini,因此它们需要GOOGLE_CLOUD_PROJECT和凭证,或者.env文件中的GOOGLE_API_KEY/GEMINI_API_KEY。
参考资料
references/langchain.md— 框架契约和每个命令的详细信息。references/samples.md— 值得复制的代理示例,按结构分类。