å Codex 䏿 ·æå»º Python CLI 代ç | AIçæåç¿»è¯
é®é¢ï¼Python å¯ä»¥ç¨æ¥æå»ºç±»ä¼¼äº Claude Code æ OpenAI Codex ç CLI å·¥å ·åï¼
åçï¼
æ¯çï¼å½ç¶å¯ä»¥ã Python æ¯æå»ºç±»ä¼¼äº Claude Code æ Codex ç AI é©±å¨ CLI ç¼ç 代ççæä½³è¯è¨ä¹ä¸ãäºå®ä¸ï¼è®¸å¤æµè¡ç弿ºæ¿ä»£ååè¿äºå·¥å ·çæè²å éçå®å ¨ä½¿ç¨ Python æå»ºã
Claude Code / Codex çå·¥ä½åçæ¯ä»ä¹ï¼
å¨æå»ºèªå·±çå·¥å ·ä¹åï¼äºè§£è¿äºå·¥å ·å®é åä»ä¹ä¼å¾æå¸®å©ã䏿¦çè§£äºæ ¸å¿æ¦å¿µï¼æå»ºç¼ç 代çå°±åå¾åºå¥ç®åââä½ ä¸éè¦ PhD æä»£çæ¡æ¶ï¼åªéè¦ Python 忏 æ°çæèãä¸»è¦æºå¶å æ¬ï¼
- 代çå¾ªç¯ â LLM æ¥æ¶ç¨æ·è¾å ¥ï¼å³å®è°ç¨åªäºå·¥å ·ï¼æ§è¡å®ä»¬ï¼ç¶å循ç¯è¿åã
- å·¥å · â 读åæä»¶ãç¼å代ç ãè¿è¡ shell å½ä»¤ãæ§è¡æµè¯ã
- å å/ä¸ä¸æç®¡ç â å¤ç大å代ç åºï¼èä¸ä¼æº¢åº LLM çä¸ä¸æçªå£ã
- ç³»ç»æç¤º / æä»¤ â æå¯¼æ¨¡åçè¡ä¸ºã
æå°ä»£ç模å¼å¦ä¸æç¤ºï¼
User --> messages[] --> LLM --> response
| stop_reason == "tool_use"?
/ \
yes no
| |
execute return text
tools
append results
loop back --> messages[]
æ¯ä¸ª AI ç¼ç 代çé½éè¦è¿ä¸ªå¾ªç¯ãç产级代ç伿·»å çç¥ãæéåçå½å¨æå±ã
å¦ä½å¨ Python ä¸æå»ºä¸ä¸ª
Core Libraries You Need
Minimal Working Example
import anthropic
import subprocess
client = anthropic.Anthropic()
tools = [
{
"name": "run_bash",
"description": "Execute a bash command",
"input_schema": {
"type": "object",
"properties": {"command": {"type": "string"}},
"required": ["command"]
}
},
{
"name": "read_file",
"description": "Read a file's contents",
"input_schema": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]
}
}
]
def run_agent(user_prompt: str):
messages = [{"role": "user", "content": user_prompt}]
while True:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
tools=tools,
messages=messages
)
# If no tool calls, print final answer and exit
if response.stop_reason == "end_turn":
for block in response.content:
if hasattr(block, "text"):
print(block.text)
break
# Execute tool calls
tool_results = []
for block in response.content:
if block.type == "tool_use":
if block.name == "run_bash":
result = subprocess.run(
block.input["command"],
shell=True, capture_output=True, text=True
)
output = result.stdout or result.stderr
elif block.name == "read_file":
with open(block.input["path"]) as f:
output = f.read()
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": output
})
# Append assistant response and tool results, then loop
messages.append({"role": "assistant", "content": response.content})
messages.append({"role": "user", "content": tool_results})
if __name__ == "__main__":
import sys
run_agent(" ".join(sys.argv[1:]))
åè¿æ ·è¿è¡ï¼python agent.py "list all Python files and count lines in main.py"
ä¸ºå®æ´ CLI å·¥å ·æ·»å çå ³é®ç»ä»¶
1. åéç CLI æ¥å£ï¼ä½¿ç¨ typerï¼
import typer
app = typer.Typer()
@app.command()
def main(prompt: str, model: str = "claude-sonnet-4-20250514"):
run_agent(prompt, model)
if __name__ == "__main__":
app()
2. æä»¶è¯»å/ç¼è¾å·¥å ·
èµäºä»£çåå ¥æä»¶çè½åï¼èä¸ä» ä» æ¯è¯»åãè¿æ¯ä»»ä½ç¼ç 代ççæ ¸å¿ââæ²¡æåå ¥æéï¼å®åªè½å»ºè®®ï¼èæ æ³å®ç°ã
3. ä¸ä¸æç®¡ç
LLM çä¸ä¸æçªå£æéï¼å³ä½¿è½å®¹çº³æ´ä¸ªä»£ç åºï¼ä¹ä¸è¦ä¸å åºåå°å¾åæ°ç¾ä¸ªæä»¶ï¼é£ä¼æµªè´¹ä¸ä»¤äººå°æã代çä¼è±è´¹å¤§é¨åæ¨çè½åæ¥å¤æä»ä¹æ¯ç¸å ³çãè§£å³æ¹æ¡å æ¬è®©æ¨¡å grep ç¹å®ç¬¦å·ãæå»ºæä»¶ç´¢å¼ï¼æä½¿ç¨ embeddingsã
4. æ²ç®± / å®å ¨æ§
卿§è¡ shell å½ä»¤ä¹åï¼å¯¹å ¶è¿è¡éªè¯ãä½ å¯ä»¥ä½¿ç¨ Docker 容卿éå¶ä»£çå¯åå ¥çç®å½ã
5. æµå¼è¾åºï¼ç¨äºç¨æ·ä½éªï¼
ä½¿ç¨ Anthropic SDK ç client.messages.stream()ï¼è®©ç¨æ·å®æ¶çå°è¾åºï¼è䏿¯çå¾
ã
å®é ä¸çç Python 项ç®ç¤ºä¾
- learn-claude-code (GitHub: shareAI-lab) æ¯ä¸ä¸ª Python åèå®ç°ï¼éè¿ 12 个æ¸è¿å¼ä¼è¯ä»ç®åå¾ªç¯æå»ºå°é离çèªä¸»æ§è¡ï¼æé Claude Code 飿 ¼ç代çã
- Aider å¯éè¿
pip install aider-chatå®è£ ï¼æ¯æ 100+ ç§è¯è¨ï¼å ·ææºè½ä»£ç åºæ å°åèªå¨ git æäº¤ã - claude-code-builder æ¯ä¸ä¸ª AI 驱å¨ç Python CLI å·¥å ·ï¼ä½¿ç¨ Claude Agent SDK èªå¨åæ´ä¸ªè½¯ä»¶å¼åçå½å¨æï¼ä»è§èå°é¨ç½²ã
ä½¿ç¨ Anthropic ç宿¹ Agent SDK
Agent SDK æä¾äºä¸ Claude Code æ¬èº«ç¸åçå·¥å ·ã代ç循ç¯åä¸ä¸æç®¡çãå®å¯ä½ä¸ºèæ¬å CI/CD ç CLI 使ç¨ï¼æä½ä¸º Python å TypeScript å æä¾å®å ¨çç¨åºåæ§å¶ã
pip install claude-agent-sdk
æ»ç»
Python å®å ¨æè½åæå»ºç产级ç AI CLI å·¥å ·ãClaude Code å Codex ç¸å¯¹äº Python æå»ºå·¥å ·çä¼å¿ä» å¨äºä¸åèªæ¨¡åæä¾åçæ´æ·±éæï¼ä½ååå½ä»ç弿¾ SDKï¼è¿ä¸ªå·®è·é常å°ã
åèèµæï¼
- Build a Coding Agent from Scratch: Python Tutorial
- learn-claude-code (GitHub)
- Anthropic Agent SDK - Run Claude Code Programmatically
- claude-code-builder (GitHub)
- Top 10 Open-Source CLI Coding Agents 2025
