9行Python代码实现AI Agent实战
谁说写个Agent得得依赖 LangChain 这种动辄几千行代码的框架?其实只要模型支持 Tool Calling,用 Python 标准库就能撸出一个能跑的 Agent,完全不需要安装任何第三方包。
实操部署建议:
下一篇
AI配音提示词:别再用那种像机器人读课本的声音了 →
分享一个极简实现,核心逻辑就是:发送请求 → 判断是否有工具调用 → 执行本地 shell → 把结果喂回模型。这种写法没有任何依赖冗余,启动速度极快,而且完全透明,不需要去猜框架底层在干什么。
具体实现如下:
import json,sys;from subprocess import getoutput as sh;from urllib.request import Request as R,urlopen
url=sys.argv[1];h=[];b=dict(model="gpt-5.6",input=h,tools=[dict(type="custom",name="sh")])
while p:=input("> "):
h+=[dict(role="user",content=p)];H={"Content-Type":"application/json"}
while True:
o=(r:=json.load(urlopen(R(url,json.dumps(b).encode(),H))))["output"]
h+=o;c=[i for i in o if i["type"]=="custom_tool_call"];z=r["usage"]["total_tokens"]/10500
if not c:print(o[-1]["content"][0]["text"],f'\n[{z:06.3f}%]');break
h+=[dict(type="custom_tool_call_output",call_id=i["call_id"],output=sh(i["input"])) for i in c]这个实现之所以高效,是因为它抓住了 Agent 的本质:
- 零依赖: 全部使用
urllib和json等标准库,省去了处理pip install依赖冲突的麻烦,也降低了供应链攻击的风险。 - 环境即安全: 它没有搞复杂的权限管理,直接把
sh(shell) 作为工具。这意味着安全性由运行环境(比如 Docker 容器)决定,而不是由代码逻辑决定,这才是最硬核的隔离方案。 - 抛弃系统提示词: 没写 System Prompt。现在的强模型其实不需要冗长的引导,直接进入对话反而能节省 Token,避免被过时的提示词干扰。
实操部署建议:
一、准备一个兼容 OpenAI 接口协议的 API 端点(可以通过简单的 Proxy 转发)。
二、将代码保存为 agent.py。
三、在隔离的沙箱环境(推荐 Docker)中运行:python agent.py <你的API端点URL>。
虽然代码为了追求极致精简有点像 "Code Golf",但逻辑非常清晰。如果你想增加功能,直接在 tools 列表里加定义,然后在 while 循环里增加对应的处理逻辑就行,比在庞大的框架里找配置项快多了。