claude-agent-sdk
2
总安装量
2
周安装量
#73453
全站排名
安装命令
npx skills add https://github.com/ssiumha/dots --skill claude-agent-sdk
Agent 安装分布
opencode
2
gemini-cli
2
claude-code
2
github-copilot
2
codex
2
kimi-cli
2
Skill 文档
Claude Agent SDK
Python ê¸°ë° ë 립 ì¤íí AI ìì´ì í¸ ì½ë ìì±.
vs agent-creator:
| í목 | agent-creator | claude-agent-sdk |
|---|---|---|
| 결과물 | .claude/agents/*.md |
*.py íì¼ |
| ì¤í íê²½ | Claude Code ë´ë¶ | ë 립 Python ì± |
| ì©ë | ìì ìì | íë¡ëì ìëí |
Instructions
ìí¬íë¡ì° 1: ì ìì´ì í¸ íë¡ì í¸
-
ì©ë íì
- 무ìì ìëíí ê²ì¸ê°?
- ì´ë¤ ëêµ¬ê° íìíê°? (íì¼, ëª ë ¹, ì¹, 커ì¤í )
- ìë¸ìì´ì í¸ íì ì¬ë¶
-
í í릿 ì í
ì©ë í í릿 ìµì ìì templates/basic-agent.py커ì¤í ë구 templates/tool-agent.pyí (ê²ì¦/ë¡ê¹ ) templates/hook-agent.pyìë¸ìì´ì í¸ templates/multi-agent.pyíë¡ëì templates/production-agent.py -
íë¡ì í¸ êµ¬ì¡° ìì±
{project}/ âââ pyproject.toml âââ agent.py # ë©ì¸ ìì´ì í¸ âââ tools.py # 커ì¤í ë구 (ì í) âââ hooks.py # í ì ì (ì í) -
ì½ë ìì±: í í릿 기ë°ì¼ë¡ ì¬ì©ì ì구ì ë§ê² ìì
ìí¬íë¡ì° 2: ê¸°ë¥ ì¶ê°
기존 ìì´ì í¸ì ê¸°ë¥ ì¶ê° ì:
-
í¤ìë â 리ìì¤ ë§¤ì¹
í¤ìë 리ìì¤ ì¤ì¹, pyproject resources/01-setup.mdquery, 기본, ìµì resources/02-query-options.mdë구, @tool resources/03-custom-tools.mdí , hook, ê²ì¦ resources/04-hooks.mdìë¸ìì´ì í¸, ìì resources/05-subagents.mdì¸ì , resume resources/06-sessions.mdMCP, playwright resources/07-mcp.md -
리ìì¤ ë¡ë â í¨í´ ì ì©
ìí¬íë¡ì° 3: ì½ë 리뷰/ê°ì
기존 ìì´ì í¸ ì½ë ë¶ì ìì² ì:
- 구조 íì¸: íì¬ ì¬ì© ì¤ì¸ ê¸°ë¥ íì
- ê°ì ì ì ì:
- ìë¬ í¸ë¤ë§ ì¶ê°
- í ì¼ë¡ ê²ì¦/ë¡ê¹
- ìë¸ìì´ì í¸ë¡ ë¶ë¦¬
- ì¸ì ê´ë¦¬ ì¶ê°
íµì¬ í¨í´
기본 query()
from claude_agent_sdk import query, ClaudeAgentOptions
async for msg in query(
prompt="ìì
ì§ì",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Bash"],
cwd="/path/to/project",
permission_mode="acceptEdits"
)
):
if hasattr(msg, "result"):
print(msg.result)
커ì¤í ë구
from claude_agent_sdk import tool, create_sdk_mcp_server
@tool("search", "ê²ì ìí", {"query": str})
async def search(args):
return {"content": [{"type": "text", "text": f"ê²°ê³¼: {args['query']}"}]}
server = create_sdk_mcp_server("my-tools", "1.0.0", tools=[search])
í
async def validate_bash(input_data, tool_use_id, context):
cmd = input_data.get("tool_input", {}).get("command", "")
if "rm -rf" in cmd:
return {"decision": "block", "reason": "ìíí ëª
ë ¹ì´"}
return {}
options = ClaudeAgentOptions(
hooks={"PreToolUse": [HookMatcher(matcher="Bash", hooks=[validate_bash])]}
)
ì¤ì ìì¹
- allowed_tools ìµìí: íìí ëêµ¬ë§ íê°
- permission_mode ì ì¤í:
bypassPermissionsë íë¡ëì ì ì© - ìë¬ í¸ë¤ë§:
try/exceptë¡ graceful ì²ë¦¬ - ì¸ì íì©: ì¥ê¸° ìì ì session_id ì ì¥ í resume
Technical Details
REFERENCE.md: SDK API ì ì²´ ê°ìresources/: 기ë¥ë³ ìì¸ í¨í´templates/: ìì í ìì´ì í¸ ì½ë