# 开发 Agent 可以用哪些语言?

Agent 的核心只是 "调 API + 循环 + 执行工具", 所以几乎任何能发 HTTP 请求的语言都能做。 区别只在于生态、官方支持和应用场景。

> 原文：[开发 Agent 可以用哪些语言?](https://qmbim.com/articles/81d30302-6d60-4293-90e6-e0dadc2a7455)
> 作者：迈智数创 · 发布于 2026-10-10
> 转载请注明出处并保留原文链接。

---

## 一、有官方 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 脚本:

```bash
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 完全一样:

```typescript
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 可以用不同语言开发**

具体框架版本和功能变化较快,用之前建议先看官方文档。
