AgentScope Java 2.0 | Spring Boot 4.1 | LangGraph | AgentScope Python | FastAPI | Java + Python 双语言

你是否好奇:同一个 AI Coding Agent 的设计,用 Java 和 Python 分别实现,会碰撞出怎样的火花?

市面上的 AI 编程助手要么只讲 Python 生态,要么只展示 Java 的企业级能力——很少有人用同一套设计理念,跨语言、跨框架地实现三遍,然后告诉你:哪些设计是通用的,哪些是框架特有的。

Babi Agent 就是这么做的——同一个 Coding Agent 概念,分别用 AgentScope Java + Spring BootAgentScope Python + FastAPILangGraph + LangChain + FastAPI 三种技术栈完整实现,覆盖代码读写、Shell 执行、网页抓取、Web 搜索、GitHub 集成、Skills 扩展等全流程能力。


🎯 为什么要把同一个 Agent 写三遍?

动机一:Java 和 Python 的 AI Agent 生态各有所长

Python 有 LangChain、LangGraph、AgentScope 等成熟的 Agent 框架,生态丰富、迭代迅速。Java 有 Spring Boot 的企业级能力——依赖注入、WebFlux 响应式流、类型安全——但 AI Agent 框架相对稀缺。

如果只写一种语言,你永远不知道另一种语言的框架设计得有多好(或多差)。

动机二:Agent 框架选型不应该靠猜

LangGraph 的 create_react_agent 和 AgentScope Java 的 HarnessAgent,底层都是 ReAct 模式,但 API 设计、工具注册、会话持久化、流式输出的实现方式截然不同。只有亲手用两个框架写一遍,你才能说出它们各自的优劣。

动机三:好的设计是跨语言的

Skills 系统、工具事件总线、工作区管理、系统提示词构建——这些核心设计在三种实现中几乎一模一样。如果一种设计在 Java 和 Python 中都能优雅地实现,那它大概率是一个好设计。


🏗️ 三项目全景:同一理念,三种表达

项目矩阵

维度 babi (Java) babi-agentscope (Python) babi-langgraph (Python)
核心框架 AgentScope Java 2.0 AgentScope Python SDK LangGraph + LangChain
Web 框架 Spring Boot 4.1 (WebFlux) FastAPI + Uvicorn FastAPI + Uvicorn
CLI 框架 Spring Boot (exec:java) Click Click
ReAct 引擎 HarnessAgent (内置) Agent (内置) create_react_agent
模型接入 DashScope 原生 SDK DashScope 原生 SDK ChatOpenAI 兼容 API
会话持久化 JSON 文件 (~/.babi/sessions/) Redis PostgreSQL / MemorySaver
工具事件 ToolEventBus (Reactor Sinks) InMemoryMessageBus astream_events
启动命令 mvn spring-boot:run babi-as babi-lg

共同的特性

三个项目不是"各写各的",而是共享同一套设计语言

  • 9+ 内置工具:代码读写、搜索、Shell 执行、网页抓取、Web 搜索、HTTP 请求、GitHub 集成
  • Skills 扩展系统:Markdown 定义、三级加载(全局 / Babi 专属 / 项目级)
  • Web + CLI 双端交互:SSE 流式输出 + 终端 REPL
  • 工作区管理:默认当前目录,AGENTS.md 自动注入
  • 系统提示词:相同的核心规则(Tool-First、No Hallucination、GitHub API 优先)

🔬 核心设计深度对比

✨ 1. Agent 构建:Builder 模式 vs 工厂函数 vs 预构建函数

三种实现展示了 Agent 框架的三种不同设计哲学:

Java — HarnessAgent Builder 模式

HarnessAgent.builder()
        .name("Babi")
        .sysPrompt(sysPrompt)
        .model(DashScopeChatModel.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .modelName("qwen-plus")
                .stream(true)
                .enableSearch(true)
                .build())
        .toolkit(toolkit)
        .workspace(workspacePath)
        .filesystem(new LocalFilesystemSpec()
                .project(workspacePath)
                .mode(LocalFsMode.UNRESTRICTED))
        .stateStore(stateStore)
        .maxIters(20)
        .maxRetries(2)
        .fallbackModel("qwen-turbo")
        .enableTaskList()
        .enablePlanMode()
        .allowShellInPlanMode()
        .middleware(new ContextTruncateMiddleware(30))
        .middleware(new ToolNotificationMiddleware(toolEventBus))
        .build();

Builder 模式的优势一目了然:20+ 个配置项链式调用,每个选项语义清晰。HarnessAgent 内置了计划模式、任务追踪、模型降级、中间件管道等能力,开发者只需"开关式"启用。

Python (AgentScope) — 工厂函数

agent = Agent(
    name="BabiAgent",
    system_prompt=sys_prompt,
    model=DashScopeChatModel(
        credential=DashScopeCredential(api_key=settings.dashscope_api_key),
        model=settings.model_name,
        stream=True,
        max_retries=settings.max_retries,
    ),
    toolkit=Toolkit(tools=[
        Bash(), Grep(), Glob(), Read(), Write(), Edit(),
        FunctionTool(fetch_url),
        FunctionTool(http_request),
        FunctionTool(web_search),
        FunctionTool(github_api_request),
        FunctionTool(github_pinned_repos),
        FunctionTool(skill_tool.list_skills),
        FunctionTool(skill_tool.use_skill),
    ]),
    state=AgentState(
        permission_context=PermissionContext(mode=PermissionMode.BYPASS),
    ),
)

AgentScope Python 的 Agent 类更简洁——Toolkit 统一注册内置工具和自定义工具,FunctionTool 可以将普通 Python 函数直接包装为 Agent 工具。

Python (LangGraph) — 预构建函数

agent = create_react_agent(
    model=llm,
    tools=tools,
    checkpointer=checkpointer,
    prompt=sys_prompt,
)

LangGraph 的 create_react_agent 是三者中最简洁的——一行代码创建一个完整的 ReAct Agent。但简洁的代价是灵活性:计划模式、模型降级、中间件管道等高级能力需要自行实现。

这意味着:Agent 框架的选型本质上是"开箱能力"与"灵活性"的权衡——HarnessAgent 开箱即用,LangGraph 极简但需要自建。

✨ 2. 工具系统:框架内置 vs 手写实现

三个项目的工具分为两类:框架提供的内置工具开发者自定义的工具

工具 Java (babi) Python-AS (babi-agentscope) Python-LG (babi-langgraph)
读文件 HarnessAgent 内置 Read AgentScope 内置 Read 手写 read_file (@tool)
写文件 HarnessAgent 内置 Write AgentScope 内置 Write 手写 write_file (@tool)
编辑文件 HarnessAgent 内置 Edit AgentScope 内置 Edit 手写 edit_file (@tool)
代码搜索 HarnessAgent 内置 Grep AgentScope 内置 Grep 手写 grep_files (@tool)
Glob HarnessAgent 内置 Glob AgentScope 内置 Glob 手写 glob_files (@tool)
Shell HarnessAgent 内置 Bash AgentScope 内置 Bash 手写 shell_execute (@tool)
网页抓取 自定义 FetchUrlTool 自定义 fetch_url 自定义 fetch_url
Web 搜索 模型内置 enableSearch 自定义 web_search (Tavily) 自定义 web_search (Tavily)
HTTP 请求 自定义 HttpRequestTool 自定义 http_request 自定义 http_request
GitHub API 自定义 GitHubApiTool 自定义 github_api_request 自定义 github_api_request
Skills 自定义 SkillTool 自定义 SkillTool 自定义 SkillTool

一个有趣的发现:Java 和 AgentScope Python 的文件系统/Shell 工具完全由框架提供,开发者只需要写自定义工具(网页抓取、GitHub 等)。而 LangGraph 版本需要手写所有工具——包括 read_fileshell_execute 这些基础操作。

以 LangGraph 版本的 edit_file 为例:

@tool
def edit_file(file_path: str, old_text: str, new_text: str) -> str:
    """Edit a file by replacing exact text matches."""
    try:
        path = os.path.expanduser(file_path)
        with open(path, "r", encoding="utf-8") as f:
            content = f.read()
        count = content.count(old_text)
        if count == 0:
            return f"Error: Text not found in {file_path}."
        if count > 1:
            return f"Error: Text found {count} times. old_text must be unique."
        new_content = content.replace(old_text, new_text, 1)
        with open(path, "w", encoding="utf-8") as f:
            f.write(new_content)
        return f"Successfully edited {file_path}"
    except Exception as e:
        return f"Error editing file: {e}"

这意味着:LangGraph 给你最大的自由度,但也要求你写最多的代码。AgentScope 和 HarnessAgent 帮你把基础工具做好了,你只需要关注差异化能力。

✨ 3. 会话持久化:三种策略各有所长

实现 存储后端 机制 特点
babi (Java) JSON 文件 JsonFileAgentStateStore 零依赖,文件级持久化
babi-agentscope Redis RedisStorage 高性能,支持多进程/分布式
babi-langgraph PostgreSQL / Memory AsyncPostgresSaver / MemorySaver 关系型持久化 or 纯内存

Java 版本最轻量——会话以 JSON 文件存储在 ~/.babi/sessions/,不需要任何外部服务:

@Bean
public AgentStateStore agentStateStore() {
    Path sessionPath = Paths.get(System.getProperty("user.home"), ".babi", "sessions");
    return new JsonFileAgentStateStore(sessionPath);
}

AgentScope Python 版本选择 Redis——天然适合 FastAPI 的异步场景和多进程部署:

storage = RedisStorage(host="localhost", port=6379)

LangGraph 版本最灵活——PostgreSQL 用于生产环境,MemorySaver 用于开发调试,通过环境变量 BABI_PG_DSN 一键切换:

pg_dsn = settings.pg_dsn
if pg_dsn:
    checkpointer = await AsyncPostgresSaver.from_conn_string(pg_dsn)
else:
    checkpointer = MemorySaver()  # 降级到内存

这意味着:三种持久化策略没有绝对的优劣——JSON 文件适合单机轻量场景,Redis 适合高性能 Web 服务,PostgreSQL 适合需要事务保证的生产环境。

✨ 4. 流式输出:Reactor Sinks vs SSE 直推 vs astream_events

三个项目都支持 SSE 流式输出,但实现方式各有特色:

Java — ToolEventBus + WebFlux

ToolNotificationMiddleware ──发布──→ ToolEventBus ──订阅──→ SSE Controller ──推送──→ 前端
       (Agent 中间件)                 (Reactor Sinks)           (WebFlux SSE)

Java 版本设计了一个基于 Reactor Sinks.Many 的事件总线,通过 sessionId 隔离不同会话的事件流。中间件在 Agent 执行过程中发布事件,Controller 订阅后通过 SSE 推送给前端:

private final Sinks.Many<ToolEvent> sink =
        Sinks.many().multicast().onBackpressureBuffer(256, false);

AgentScope Python — agentscope.app.create_app

AgentScope Python 的 Web 层直接复用框架的 create_app,SSE 由框架内置的 InMemoryMessageBus 管理,开发者只需关注自定义路由(工作区文件浏览、会话管理等)。

LangGraph Python — astream_events

async for event in agent.astream_events(
    {"messages": [("user", request.message)]},
    config=config,
    version="v2",
):
    kind = event.get("event")
    if kind == "on_chat_model_stream":
        # Token 级流式输出
        yield f"data: {json.dumps({'type': 'token', 'content': chunk.content})}\n\n"
    elif kind == "on_tool_start":
        # 工具调用通知
        yield f"data: {json.dumps({'type': 'tool_call', 'tool': tool_name})}\n\n"

LangGraph 的 astream_events 是最直接的——事件流直接从 Agent 内部产生,无需中间件或事件总线

这意味着:Java 的 ToolEventBus 最灵活(可独立订阅、扩展),AgentScope Python 最省心(框架全包),LangGraph 最直接(事件流开箱即用)。

✨ 5. Skills 系统:跨语言的统一设计

Skills 系统是三个项目中最一致的设计——无论 Java 还是 Python,加载逻辑几乎完全相同:

~/.agents/skills/    ← 全局共享技能(最低优先级)
~/.babi/skills/      ← Babi 专属技能(中等优先级,覆盖全局)
.qoder/skills/       ← 项目级技能(最高优先级,相对于工作区根目录)

加载规则:

  • 支持扁平文件my-skill.md)和目录格式my-skill/SKILL.md
  • 同名 Skill 高优先级覆盖低优先级
  • YAML 前置元数据 + Markdown 正文

Java 版本SkillLoader.java):

public static Map<String, Skill> loadAll() {
    Map<String, Skill> skills = new LinkedHashMap<>();
    loadFromDir(GLOBAL_DIR, skills);      // 1. 全局(最低优先级)
    loadFromDir(BABI_DIR, skills);        // 2. Babi 专属(覆盖全局)
    Path projectSkillsDir = Path.of(System.getProperty("user.dir"))
            .resolve(PROJECT_SKILLS_DIR);
    loadFromDir(projectSkillsDir, skills); // 3. 项目级(最高优先级)
    return Collections.unmodifiableMap(skills);
}

Python 版本loader.py):

def load_all_skills(workspace_path: Path | None = None) -> dict[str, Skill]:
    skills: dict[str, Skill] = {}
    _load_from_dir(GLOBAL_DIR, skills)           # 1. 全局
    _load_from_dir(BABI_DIR, skills)             # 2. Babi 专属
    if workspace_path is not None:
        _load_from_dir(workspace_path / PROJECT_SKILLS_DIR, skills)  # 3. 项目级
    return skills

几乎是一比一的翻译——这正说明好的设计是跨语言的。Skills 的本质是"Markdown 文件 + 优先级覆盖",这个设计不依赖任何特定语言或框架。

这意味着:你写一份 Skill 文件,在 Java 版、AgentScope Python 版、LangGraph 版中都能直接使用——零修改、零适配。

✨ 6. 系统提示词:同一套规则,三种实现

三个项目的系统提示词结构高度一致,都包含以下核心段落:

段落 作用
Workspace Context 注入工作区路径,强调"不要从历史对话猜测路径"
Core Rules Tool-First、No Hallucination、No Self-Denial、Honest Reporting
GitHub Section GitHub URL → API 映射规则
Skills Section 已加载技能列表 + 自动触发指令
Guidelines 通用行为准则 + 国内网络优先规则

其中 Core Rules 在三个项目中几乎逐字相同:

1. TOOL-FIRST RULE: When the user provides a URL, you MUST call fetch_url FIRST.
2. NO HALLUCINATION: NEVER fabricate content from a URL or file you haven't accessed.
3. NO SELF-DENIAL: NEVER claim a tool is "unavailable" unless you've tried it.
4. HONEST REPORTING: If a tool returns empty content, report that fact honestly.

LangGraph 版本额外增加了日期上下文CURRENT DATE: 2026-07-25 (Saturday)),因为 LangGraph 的 Agent 不像 HarnessAgent 那样自动注入时间信息。

这意味着:系统提示词是 AI Coding Agent 的"灵魂"——无论底层框架如何变化,核心规则不变。


🏛️ 架构全景对比

Java 版 (babi)

                    +------------------------------+
                    |          用户端               |
                    |  Web 聊天界面  /  CLI 终端    |
                    +--------------+---------------+
                                   | SSE / stdin
                    +--------------+---------------+
                    |   BabiAgentController         |
                    |   (WebFlux SSE 流式输出)      |
                    +--------------+---------------+
                                   |
                    +--------------+---------------+
                    |      HarnessAgent             |
                    |  (ReAct + 计划模式 + 任务追踪) |
                    |  maxIters=20 / maxRetries=2   |
                    +--------------+---------------+
                                   |
            +----------------------+----------------------+
            |                      |                      |
   +--------+--------+   +--------+--------+   +---------+-------+
   |   内置工具       |   |  中间件          |   |  基础设施        |
   |  (Read/Write/   |   | Context         |   | ToolEventBus    |
   |   Edit/Grep/    |   | Truncate        |   | (Reactor Sinks) |
   |   Bash/Glob)    |   | Tool            |   |                 |
   +-----------------+   | Notification    |   | AgentStateStore |
                         +-----------------+   | (JSON 文件)     |
   +-----------------+                         | SkillLoader     |
   |   自定义工具     |                         +-----------------+
   | FetchUrl / Http |
   | GitHub / Skill  |
   +-----------------+

Python 版 (babi-agentscope)

                    +------------------------------+
                    |          用户端               |
                    |  Web 聊天界面  /  CLI 终端    |
                    +--------------+---------------+
                                   | SSE / stdin
                    +--------------+---------------+
                    |   agentscope.app.create_app   |
                    |   (FastAPI + MessageBus)      |
                    +--------------+---------------+
                                   |
                    +--------------+---------------+
                    |         Agent                 |
                    |    (AgentScope ReAct)          |
                    +--------------+---------------+
                                   |
            +----------------------+----------------------+
            |                      |                      |
   +--------+--------+   +--------+--------+   +---------+-------+
   |  框架内置工具     |   |  自定义工具       |   |  基础设施        |
   |  (Bash/Grep/    |   |  (fetch_url /    |   | RedisStorage    |
   |   Glob/Read/    |   |   http_request / |   | (会话持久化)     |
   |   Write/Edit)   |   |   web_search /   |   |                 |
   +-----------------+   |   github_api /   |   | SkillLoader     |
                         |   list/use_skill)|   +-----------------+
                         +-----------------+

Python 版 (babi-langgraph)

                    +------------------------------+
                    |          用户端               |
                    |  Web 聊天界面  /  CLI 终端    |
                    +--------------+---------------+
                                   | SSE / stdin
                    +--------------+---------------+
                    |      FastAPI App              |
                    |   (astream_events SSE)        |
                    +--------------+---------------+
                                   |
                    +--------------+---------------+
                    |   create_react_agent          |
                    |   (LangGraph ReAct)           |
                    +--------------+---------------+
                                   |
            +----------------------+----------------------+
            |                      |                      |
   +--------+--------+   +--------+--------+   +---------+-------+
   |  手写工具         |   |  自定义工具       |   |  基础设施        |
   |  (read_file /   |   |  (fetch_url /    |   | PG/Memory       |
   |   write_file /  |   |   http_request / |   | Checkpointer    |
   |   edit_file /   |   |   web_search /   |   | (会话持久化)     |
   |   grep_files /  |   |   github_api /   |   |                 |
   |   shell_execute)|   |   list/use_skill)|   | SkillLoader     |
   +-----------------+   +-----------------+   +-----------------+

📊 技术栈速查

组件 babi (Java) babi-agentscope babi-langgraph
Agent 框架 AgentScope Java 2.0 AgentScope Python LangGraph 0.4 + LangChain 0.3
Web 框架 Spring Boot 4.1 (WebFlux) FastAPI 0.115+ FastAPI 0.115+
CLI 入口 Spring Boot exec:java Click + babi-as Click + babi-lg
模型 DashScope SDK (qwen-plus) DashScope SDK (qwen-plus) ChatOpenAI 兼容 API
联网搜索 模型内置 enableSearch Tavily API Tavily API
会话存储 JSON 文件 Redis PostgreSQL / Memory
前端 原生 HTML/JS (单文件) 原生 HTML/JS (共享) 原生 HTML/JS (共享)
构建工具 Maven pyproject.toml + setuptools pyproject.toml + setuptools
代码检查 - ruff ruff

💡 跨框架工程思考

1. 哪些设计是框架无关的?

通过三遍实现,我们验证了以下设计是真正通用的

设计 说明
Skills 三级加载 全局 → Babi 专属 → 项目级,优先级覆盖
系统提示词结构 Workspace Context → Core Rules → GitHub → Skills → Guidelines
工具分类 文件系统 / 网络 / GitHub / Skills,边界清晰
SSE 事件类型 token / tool_call / tool_result / done,前端渲染逻辑一致
工作区语义 默认当前目录,AGENTS.md 自动注入
前端共享 三个项目使用完全相同的前端静态文件

2. 哪些设计是框架特有的?

能力 Java (HarnessAgent) Python (AgentScope) LangGraph
计划模式 ✅ 内置 ❌ 需自建
任务追踪 ✅ enableTaskList() ❌ 需自建
模型降级 ✅ fallbackModel() ❌ 需自建
中间件管道 ✅ middleware() ❌ 需自建
文件系统工具 ✅ 框架提供 ✅ 框架提供 ❌ 需手写
Checkpointer JSON 文件 Redis PG / Memory
Web 应用 Spring Boot 全套 agentscope.app.create_app 自建 FastAPI

3. 框架选型的真实感受

维度 HarnessAgent AgentScope Python LangGraph
上手难度 中(Builder 配置项多) 低(API 简洁) 最低(一行创建)
开箱能力 最强(计划/追踪/降级/中间件) 中(Agent + Toolkit) 最弱(仅 ReAct)
灵活性 中(框架约束较多) 最高(自由组合)
生产级能力 高(中间件管道 + 状态管理) 高(Redis + MessageBus) 中(需自建)
生态整合 Spring 生态 AgentScope 生态 LangChain 生态
适合场景 企业级 Java 项目 Python Agent 快速开发 研究和原型探索

🎓 学习价值

对于初中级开发者

  • ✅ 通过三个项目的对比,理解 AI Coding Agent 的通用架构——不管用什么框架,核心组件(工具、提示词、会话、流式输出)是一样的
  • ✅ 学习 ReAct 模式在不同框架中的实现——从 HarnessAgent 的内置循环到 LangGraph 的 create_react_agent
  • ✅ 掌握 如何为大模型设计可调用工具——9+ 个工具的实现横跨 Java 和 Python
  • ✅ 理解 SSE 流式推送的跨语言实现——Reactor Sinks vs FastAPI StreamingResponse vs astream_events

对于高级开发者

  • ✅ 深入对比 AgentScope Java vs AgentScope Python vs LangGraph 的设计哲学差异
  • ✅ 理解 会话持久化的三种策略——JSON 文件 / Redis / PostgreSQL 的适用场景
  • ✅ 学习 中间件管道模式(Java 独有)vs 事件流模式(Python)的架构权衡
  • ✅ 掌握 Skills 系统的跨语言设计——同一套 Markdown 文件在三种实现中通用

对于架构师

  • 跨语言 Agent 架构设计的实战参考——验证"好设计是跨语言的"
  • Agent 框架选型决策——从"开箱能力"到"灵活性"的完整权衡矩阵
  • 工具系统分层设计——框架内置工具 vs 自定义工具的边界划分
  • 前端共享策略——三种后端实现共享同一套前端静态文件的设计思路

🚦 快速开始

前置要求

  • JDK 17+(Java 版)
  • Python 3.10+(Python 版)
  • 阿里云百炼 API Key(申请地址

方式一:Java 版 (babi)

export DASHSCOPE_API_KEY=your_api_key

# Web 聊天界面
git clone https://github.com/javahongxi/babi.git
cd babi
mvn spring-boot:run -pl babi-agent
# 打开 http://localhost:8900

# CLI 模式
./install.sh
babi

方式二:AgentScope Python 版 (babi-agentscope)

export DASHSCOPE_API_KEY=your_api_key

git clone https://github.com/javahongxi/babi-agentscope.git
cd babi-agentscope
pip install -e ".[dev]"

# CLI 模式(默认当前目录为工作区)
babi-as

# Web 聊天界面(需要 Redis)
babi-as --web

方式三:LangGraph Python 版 (babi-langgraph)

export DASHSCOPE_API_KEY=your_api_key

git clone https://github.com/javahongxi/babi-langgraph.git
cd babi-langgraph
pip install -e ".[dev]"

# CLI 模式
babi-lg

# Web 聊天界面(可选 PostgreSQL 持久化)
export BABI_PG_DSN=postgresql://user:pass@localhost:5432/babi  # 可选
babi-lg --web

试试这些

# 代码分析
帮我看看当前项目的目录结构

# 构建执行
帮我编译这个项目

# 代码搜索
搜索所有包含 @RestController 的文件

# GitHub 操作
查看我的 GitHub 置顶仓库

# 联网搜索
搜索 AgentScope 的最新版本

# Skills 扩展
# 将 .md 文件放到 ~/.babi/skills/ 目录,三个版本自动加载同一份技能

🔗 相关链接


📝 结语

从 Java 的 HarnessAgent Builder 到 Python 的 AgentScope Agent,再到 LangGraph 的 create_react_agent——三种实现走下来,最大的收获不是"哪个框架更好",而是:好的 Agent 设计是跨语言的。

Skills 系统在 Java 和 Python 中几乎是一比一的翻译;系统提示词的核心规则(Tool-First、No Hallucination、No Self-Denial)在三个项目中逐字相同;SSE 事件类型(token / tool_call / tool_result / done)在前端完全一致——这些"不变的东西",才是 AI Coding Agent 设计的精髓。

而差异同样有价值:HarnessAgent 的计划模式和中间件管道让你思考"Agent 还需要什么能力";LangGraph 的极简 API 让你理解"ReAct 的核心其实很简单";AgentScope Python 的 FunctionTool 让你看到"工具注册可以有多优雅"。

如果你正在

  • 🎯 想深入理解 AI Coding Agent 的架构设计,而不是停留在"调 API"
  • 🚀 想在 Java 和 Python 之间做 Agent 框架选型,需要真实的对比参考
  • 🏗️ 想搭建自己的 Coding Agent,需要一套跨语言的架构蓝图
  • 🤖 想体验同一个 Agent 在三种框架下的表现差异

Star ⭐ 三个 Babi Agent 仓库,开启跨语言的 AI Coding Agent 探索之旅!

# Java 版
git clone https://github.com/javahongxi/babi.git

# AgentScope Python 版
git clone https://github.com/javahongxi/babi-agentscope.git

# LangGraph Python 版
git clone https://github.com/javahongxi/babi-langgraph.git

© hongxi.org | 一个 Coding Agent,三种框架实现——好的设计,跨语言共鸣

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐