Skip to main content

agents-cli-claude

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 a Claude Agent SDK agent scaffolded by agents-cli, so ADK-specific instructions do not apply.

معلومات المصدر

المستودع
google/agents-cli
آخر نشاط في المصدر
٢٧ أكتوبر ٢٠٢٦ في ١٠:٢٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٬٢٨٢
التفرعات
٧٢٧

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
4 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
agents-cli-claude
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 a Claude Agent SDK agent scaffolded by agents-cli, so ADK-specific instructions do not apply.
# Claude Agent SDK project (agents-cli) The agent is a `ClaudeAgentOptions` 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.** Deploy to agent_runtime (limits: `references/claude.md`) or cloud_run. The model runs on Claude on Gemini platform and must be enabled in Model Garden. ## What ADK guidance maps to here | ADK guidance | This project | |---|---| | `LlmAgent`, `Agent` | `ClaudeAgentOptions(model=..., system_prompt=..., ...)` assigned to `root_agent` | | `Agent(name=...)` | `AGENT_NAME` in `app/app_utils/settings.py` (`ClaudeAgentOptions` has no name); keep it equal to `create_params.root_agent_name` in `agents-cli-manifest.yaml` | | `google.adk.tools`, `FunctionTool` | `@tool(...)` async functions, served by `create_sdk_mcp_server` and passed in `mcp_servers` | | `adk web`, `agents-cli playground` | Unavailable (no SDK dev UI). Use `agents-cli run`, or `uv run uvicorn app.fast_api_app:app --port 8080` | | ADK runner behind `agents-cli run` | `agents-cli run` runs `root_agent` in process | | `agents-cli eval dataset synthesize`, `eval optimize` | Unavailable: both drive the agent through ADK. The command says so and exits | | `agents-cli eval generate --url` (traces from a served agent) | Unavailable: the server speaks A2A, not ADK's `/run_sse`. `eval generate` runs `root_agent` in process; the command refuses `--url` | | ADK sessions | Claude sessions, one per A2A conversation; scaffold with `--session-type cloud_sql` to keep them across instances | ## The contract - `app/agent.py` exports `root_agent: ClaudeAgentOptions`. Only it changes when you change the agent. - `app/app_utils/claude.py` runs it. Leave `app/app_utils/` alone. - The served agent's own `CLAUDE.md`, `.claude/` and `.mcp.json` go in `agent_config/`. - `app/fast_api_app.py` exposes `app`. Every deployment target runs `uvicorn app.fast_api_app:app`. ## Adding a tool ```python @tool("lookup_order", "Look up an order by id.", {"order_id": str}) async def lookup_order(args: dict[str, Any]) -> dict[str, Any]: return {"content": [{"type": "text", "text": f"Order {args['order_id']}: shipped"}]} server = create_sdk_mcp_server(name="orders", tools=[lookup_order]) root_agent = ClaudeAgentOptions( ..., mcp_servers={"orders": server}, tools=[], # no built-in Claude Code tools allowed_tools=["mcp__orders__lookup_order"], # mcp__<server>__<tool> ) ``` A tool missing from `allowed_tools` is not available to the agent. Subagents (`agents=` or `agent_config/.claude/agents/`) run through the built-in `Agent` tool: add `"Agent"` to both `tools` and `allowed_tools`. Built-in tools (`WebFetch`, `WebSearch`, `Read`, `Bash`, ...) go in both `tools` and `allowed_tools`; keep `Bash` and file-editing tools out of a served agent unless the user asks. ## Commands ```bash agents-cli install # uv sync agents-cli run "hello" # run root_agent in process; prints a session id agents-cli run "and?" --session-id <id> # continue that conversation 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 # add infra later ``` `run`, `eval generate`, `publish gemini`, `playground`, `eval dataset` and `eval optimize` 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: JSON-RPC at `POST /a2a/app`, card at `/a2a/app/.well-known/agent-card.json`, health at `/health`; over A2A, text streams as it is generated. On Agent Runtime, also `:query` and `:streamQuery` (new sessions and turns), which `agents-cli run --mode adk` and an ingress Agent Gateway use. See `references/claude.md` for sessions, telemetry and deployment. ## Common mistakes - Renaming `root_agent` or `app`, which breaks `run`, eval and deploy. - Leaving `tools` unset: the agent then gets every built-in Claude Code tool. - Using a model id that is not enabled on Gemini platform for the project. - 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's REST session routes; this server serves A2A and Agent Runtime's `:query` / `:streamQuery`. ## References - `references/claude.md` — how a turn runs, model access, project settings, sessions, calling other agents, telemetry and logs. - `references/migrate-claude-agent.md` — moving an existing Claude Agent SDK agent into this project and onto GCP. - `references/migrate-from-aws.md` — extra migration steps for an agent running on AWS.
عرض على GitHub