Objetivo: ao final, o consultor sabe que o Agent SDK é o Claude Code empacotado como biblioteca, roda um query em Python e em TypeScript, e escolhe entre as quatro formas de construir agente.
.claude/ do projeto automaticamente: a skill do módulo 2.4, o CLAUDE.md do 2.3 e o plugin do 3.3 continuam valendo dentro do agente embutido no produto. Nada é reescrito.pip install claude-agent-sdk
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
options = ClaudeAgentOptions(
system_prompt="Você é um assistente de projeto SAP da Wayon.",
allowed_tools=["Read", "Grep", "Glob"], # somente leitura
permission_mode="acceptEdits",
max_turns=15,
cwd="/projetos/meridiano",
)
async for message in query(
prompt="Liste os RICEFW cuja FS ainda não tem cenário de teste associado.",
options=options,
):
print(message)
asyncio.run(main())
Para conversa com mais de um turno, existe ClaudeSDKClient, que mantém o contexto entre perguntas:
from claude_agent_sdk import ClaudeSDKClient, AssistantMessage, TextBlock
async def main():
async with ClaudeSDKClient() as client:
await client.query("Quais RICEFW estão sem cenário de teste?")
async for message in client.receive_response():
if isinstance(message, AssistantMessage):
for block in message.content:
if isinstance(block, TextBlock):
print(block.text)
await client.query("Desses, quais são de MM?") # mantém o contexto anterior
async for message in client.receive_response():
...
npm install @anthropic-ai/claude-agent-sdk
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Liste os RICEFW sem cenário de teste associado.",
options: {
allowedTools: ["Read", "Grep", "Glob"],
maxTurns: 15,
cwd: "/projetos/meridiano",
},
})) {
console.log(message);
}
A biblioteca existe só em Python e TypeScript. Em qualquer outra linguagem, o caminho documentado é rodar o CLI como subprocesso, com -p e --output-format json — que é exatamente o modo headless da aula 3.5.3.
| Opção (Python / TypeScript) | O que faz | Módulo de origem |
|---|---|---|
allowed_tools / allowedTools |
Ferramentas aprovadas sem perguntar | 2.5 (permissões) |
permission_mode / permissionMode |
Modo de permissão da sessão | 2.5 · 3.4.1 |
max_turns / maxTurns |
Teto de rodadas de ferramenta | 3.7.5 |
cwd |
Diretório de trabalho | — |
mcp_servers / mcpServers |
Servidores MCP | 3.1 |
system_prompt / systemPrompt |
Prompt de sistema, ou preset | 3.6.1 |
model |
Modelo | 3.7.2 |
A tabela resume o módulo inteiro: as decisões que você tomou nos módulos anteriores viram parâmetros de código. O que era configuração de ferramenta passa a ser argumento de função.
O SDK lê o .claude/ do projeto e o ~/.claude/ do usuário, como o Claude Code faria:
| Recurso | Vale dentro do SDK |
|---|---|
Skills (.claude/skills/) |
Sim |
CLAUDE.md e .claude/rules/ |
Sim |
| Slash commands | Sim |
| Subagentes | Sim |
| Hooks | Sim |
| Plugins (por caminho local) | Sim |
É o arco do nível se fechando. A skill de FS escrita no módulo 2.4, empacotada em plugin no 3.3, rodando no CI no 3.5.5 — a mesma skill roda dentro do agente que a Wayon embute num produto do cliente, sem reescrever nada.
| Quem escreve o loop | Quem hospeda | Ferramentas disponíveis | Quando | |
|---|---|---|---|---|
| Laço manual | Você | Você | Só as suas | Controle total, sem beta |
| Tool runner | O SDK da API | Você | Só as suas | O caso comum de agente com tool própria |
| Managed Agents | Anthropic | Anthropic | Sandbox + MCP + suas | Sessão longa, agendada, sem infra sua |
| Agent SDK | O Agent SDK | Você | Arquivo, bash, busca + MCP + subagentes | Agente de código ou de arquivo, na sua infra |
preview — pode mudar· Managed Agents está em beta.
Duas confusões que essa tabela desfaz:
anthropic), que roda o laço sobre as suas ferramentas. O Agent SDK é outro pacote (claude-agent-sdk), com o arsenal do Claude Code embutido. Nomes parecidos, propósitos diferentes.O Agent SDK traz ferramentas que escrevem em disco e executam comando. Embutido num produto que toca pasta de projeto de cliente, ele é a mesma exposição do módulo 3.4, agora dentro de um produto entregue:
| Cuidado | Por quê |
|---|---|
allowed_tools mínimo |
Somente leitura resolve mais casos do que parece |
max_turns sempre |
Agente sem teto gasta sem teto |
cwd apontando para pasta dedicada |
Limita o alcance do que ele pode tocar |
| Verificação do que saiu | Auto mode não julga correção (aula 3.4.1) |
| Onde roda | É infraestrutura da Wayon — e custo de sustentação |
Regra Wayon Produto da Wayon construído com Agent SDK que toque pasta de cliente roda com
allowed_toolsmínimo,max_turnsdeclarado ecwdrestrito a diretório dedicado — nunca a raiz de um projeto. O resultado passa pela verificação do módulo 3.4 antes de chegar ao cliente. E a escolha entre Agent SDK e Managed Agents é registrada com a razão: uma põe a infraestrutura na Wayon, a outra na Anthropic, e as duas têm implicação de custo, de latência e de onde o dado do cliente é processado.
📖 Agent SDK overview · Python SDK · TypeScript SDK
São pacotes diferentes — anthropic e claude-agent-sdk — com propósitos diferentes.
Correto. Nomes parecidos, arsenais diferentes.
Os dois rodam na sua infraestrutura; quem hospeda é Managed Agents.
.claude/skills/ do projeto. O que acontece com ela num agente construído com o Agent SDK apontando para esse diretório?.claude/ do projetoCorreto, e é o que fecha o arco skill → plugin → CI → produto sem reescrita.
input_schema para o SDK reconhecerSkill não vira tool; o SDK carrega o formato original.
O Agent SDK carrega skills, comandos, CLAUDE.md, subagentes e hooks.
O Agent SDK é biblioteca que roda na infraestrutura de quem a usa.
O tool runner é um auxiliar do SDK e executa no processo de quem chama.
Correto. As outras três deixam a hospedagem com você.
model no mais capaz disponível, para reduzir a chance de erroModelo melhor não substitui limite de alcance: o risco é o que a ferramenta pode tocar.
allowed_tools mínimo, max_turns declarado e cwd restrito a um diretório dedicadoCorreto. É a exposição do módulo 3.4 dentro de um produto entregue.
permission_mode em bypass, para o agente não travar em aprovaçãoBypass em pasta de cliente é o oposto da regra da aula 3.4.1 — execução desassistida fica em auto mode.