迈智数创建筑 AI · Coding

试试搜索

↑↓ 选择Enter 打开Esc 关闭

开发 Agent 可以用哪些语言?

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

下载 .md
目录
  1. 一、有官方 SDK 的主流选择
  2. 二、没有 SDK 也能做:直接调 REST API
  3. 三、同一个 Agent 循环,TypeScript 版
  4. 四、怎么选?
  5. 五、框架与工具(按语言)

一、有官方 SDK 的主流选择

语言适合场景特点
Python学习、原型、数据/AI 相关、后端生态最全,教程和框架最多,首选
TypeScript / JavaScriptWeb 产品、全栈应用、前端集成类型安全,和前端同一套语言,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 可以用不同语言开发

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