Skip to main content

agents-cli-langchain

Use when working in this project — adding tools, editing the agent, running, evaluating, serving or deploying it — or when guidance mentions ADK, LlmAgent, google.adk, adk web, or an ADK runner. This project is LangChain/LangGraph scaffolded by agents-cli, so ADK-specific instructions do not apply.

Source facts

Repository
google/agents-cli
Last source activity
October 6, 2026 at 14:00
Detected SKILL.md language
English
Stars
6,073
Forks
692

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
agents-cli-langchain
description
Use when working in this project — adding tools, editing the agent, running, evaluating, serving or deploying it — or when guidance mentions ADK, LlmAgent, google.adk, adk web, or an ADK runner. This project is LangChain/LangGraph scaffolded by agents-cli, so ADK-specific instructions do not apply.
# LangChain project (agents-cli) The agent is a compiled LangGraph graph exported as `root_agent` from `app/agent.py`. There is no `google.adk` dependency and no ADK runner. Other `google-agents-cli-*` skills assume ADK; where they describe the agent itself, this skill wins. **Experimental, and Agent Runtime is degraded.** Deploy to cloud_run or gke. On agent_runtime the app serves, but `publish gemini-enterprise` is refused, the Console playground cannot invoke it, and Console sessions/traces stay empty: all three want the ADK `reasoning_engine` routes this project does not serve. Say so before recommending it. ## What ADK guidance maps to here | ADK guidance | This project | |---|---| | `LlmAgent`, `Agent`, `google.adk.tools` | `langchain.agents.create_agent`, plain Python functions as tools, or any compiled `StateGraph` | | `adk web`, `adk run` | `agents-cli playground` (runs `langgraph dev`) | | ADK runner behind `agents-cli run` | `agents-cli run` invokes the graph in-process | | `agents-cli eval dataset synthesize`, `eval optimize` | Unavailable: both drive the agent through ADK. The command says so and exits | | Add an `LlmAgent` in `app/agent.py` | Change the graph in `app/agent.py`; keep the name `root_agent` | ## The contract Keep these two, whatever you build inside them: - `app/agent.py` exports `root_agent`, a compiled graph with `messages` state. Callers only use `root_agent.invoke({"messages": [...]})` and `root_agent.astream(stream_mode="messages")`. - `app/fast_api_app.py` exposes `app`. Every deployment target runs `uvicorn app.fast_api_app:app`. Adding a tool means writing a typed function with a docstring and passing it in `tools=[...]`. Switching frameworks (LangGraph `StateGraph`, `deepagents.create_deep_agent`) means rewriting `app/agent.py` only. Pre-1.0 LangChain (LCEL chains, `AgentExecutor`) is not supported: not compiled graphs. ## Commands ```bash agents-cli install # uv sync agents-cli playground # langgraph dev, port 8080 agents-cli run "hello" # invoke the graph in-process 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 # unchanged agents-cli scaffold enhance -d cloud_run --cicd-runner github_actions # add infra later ``` `playground`, `run` and `eval generate` are overridden by `agents-cli-extension.yaml` at the project root. Prefix any command with `AGENTS_CLI_DISABLE_OVERRIDES=1` to reach the built-in instead. ## Serving A2A only: JSON-RPC at `POST /a2a/app`, card at `/a2a/app/.well-known/agent-card.json`, health at `/health`. Token streaming comes from `astream(stream_mode="messages")`. ## Common mistakes - Renaming `root_agent` or `app`, which breaks `run`, eval and deploy. - Reaching for `eval dataset synthesize` or `eval optimize`: they need ADK. Write cases into `tests/eval/datasets/` and use `eval generate` + `eval grade`. - Expecting `/run_sse` or ADK session routes; this server serves A2A. - Running `agents-cli run --url ...` against a deployed agent without `AGENTS_CLI_DISABLE_OVERRIDES=1`, which invokes the local graph instead. - `run` and `eval generate` call Gemini through Vertex AI with ADC, so they need `GOOGLE_CLOUD_PROJECT` and credentials, or `GOOGLE_API_KEY` / `GEMINI_API_KEY` in `.env`. ## References - `references/langchain.md` — framework contract and per-command detail. - `references/samples.md` — agents worth copying from, by shape.
View on GitHub