开发 Agent 可以用哪些语言?
Agent 的核心只是 "调 API + 循环 + 执行工具", 所以几乎任何能发 HTTP 请求的语言都能做。 区别只在于生态、官方支持和应用场景。
一、有官方 SDK 的主流选择
| 语言 | 适合场景 | 特点 |
|---|---|---|
| Python | 学习、原型、数据/AI 相关、后端 | 生态最全,教程和框架最多,首选 |
| TypeScript / JavaScript | Web 产品、全栈应用、前端集成 | 类型安全,和前端同一套语言,Node.js 和浏览器生态丰富 |
| Java / Kotlin | 企业后端、Android | 适合已有 JVM 技术栈的公司 |
| Go | 高并发服务、云原生、CLI 工具 | 部署简单(单个二进制),并发模型适合同时跑多个 Agent |
| C# / .NET | 企业应用、Windows 生态、游戏(Unity) | 微软体系集成好 |
| Ruby / PHP | 已有 Rails / Laravel 项目加 AI 功能 | 官方 SDK 支持情况各有不同,以官方文档为准 |
SDK 的具体支持范围会更新,建议查看 Anthropic 官方文档确认当前列表。
二、没有 SDK 也能做:直接调 REST API
任何语言都可以,比如 Rust、Swift、Dart、Shell 脚本:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "你好"}]
}'
自己封装请求、解析 JSON、写循环,第 3 层那 30 行逻辑换成任何语言都能复现。
三、同一个 Agent 循环,TypeScript 版
对比一下,你会发现结构和 Python 完全一样:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function runAgent(input: string, tools: any[], toolFns: Record<string, Function>) {
const messages: any[] = [{ role: "user", content: input }];
for (let step = 0; step < 10; step++) {
const resp = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 2000,
tools,
messages,
});
messages.push({ role: "assistant", content: resp.content });
if (resp.stop_reason !== "tool_use") {
return resp.content.filter(b => b.type === "text").map(b => b.text).join("");
}
const results = [];
for (const block of resp.content) {
if (block.type === "tool_use") {
let out: string;
try {
out = String(await toolFns[block.name](block.input));
} catch (e) {
out = `工具出错:${e}`;
}
results.push({ type: "tool_result", tool_use_id: block.id, content: out });
}
}
messages.push({ role: "user", content: results });
}
return "达到最大步数";
}
逻辑一一对应:循环 → 调模型 → 判断 stop_reason → 执行工具 → 回传结果。学会一种,换语言只是换语法。
四、怎么选?
- 刚入门 / 想快速验证想法 → Python
- 要做网页或全栈产品 → TypeScript
- 公司后端是 Java / .NET / Go → 用现有语言,不必为 Agent 换栈
- 性能和部署要求高(CLI、边缘服务) → Go 或 Rust
- 不想写代码 → 也有低代码平台(如 n8n、Dify),适合简单流程,但灵活度有限
一个务实建议:Agent 的瓶颈几乎都在模型推理的延迟和提示词/工具设计上,而不是语言本身的运行速度。所以别纠结性能,选你最熟悉的语言就行。
五、框架与工具(按语言)
- Python:Claude Agent SDK、LangGraph、LlamaIndex
- TypeScript:Claude Agent SDK、Vercel AI SDK、LangChain.js
- 跨语言:MCP(Model Context Protocol),可以让工具用任何语言写成独立服务,Agent 通过协议调用,这样工具和 Agent 可以用不同语言开发
具体框架版本和功能变化较快,用之前建议先看官方文档。