Underthesea - 越南语智能体工具包

零依赖的多提供商AI智能体框架,内置越南语NLP处理能力,支持OpenAI、Azure、Anthropic和Gemini。

Star 数
★ 1.8k
最近更新
1 个月前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架自托管服务
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.10+Shell / 命令行网络访问本地文件系统
典型场景
需要集成多个LLM提供商(OpenAI、Anthropic等)的开发者,只需切换Provider类即可。
不适合
  • 只想用 Cohere 等其他模型供应商的用户
  • 不想管理进度文件的多会话长任务用户

这个 Agent 能做什么,适合哪些场景?

Underthesea是一个开源的智能体AI工具包,集成了越南语自然语言处理模块。它提供了无需外部依赖的AI智能体功能,仅用Python标准库(urllib和json)与各大LLM提供商API通信。该工具包包含Agent类、支持多会话(Session)和工具调用(Tool),并提供12个内置工具,如计算器、Web搜索和文件操作。此外,它还支持通过A2A协议暴露智能体服务,具有完整的AgentCard和可选的聊天UI。同时,它包含丰富的越南语NLP功能,包括词切分、命名实体识别和情感分析。所有智能体操作自动记录到本地跟踪文件。

该仓库实现了一个Python库,用于构建和运行AI智能体。它支持通过环境变量或API密钥配置多个提供商(OpenAI、Azure OpenAI、Anthropic、Gemini)。Agent类负责与LLM API通信,处理工具调用和流式输出。Session类允许长期运行的智能体,支持上下文重置和任务交接。Agent还可以通过A2A协议(JSON-RPC over HTTP+SSE)暴露为服务,提供可选的Web UI。同时,它提供了完整的越南语NLP管道,如word_tokenize、pos_tag、ner、sentiment等函数,可直接用于文本处理。

  1. 需要集成多个LLM提供商(OpenAI、Anthropic等)的开发者,只需切换Provider类即可。
  2. 需要构建长期运行的多会话智能体,例如研究助手,可跨会话保持上下文。
  3. 需要将智能体暴露为HTTP服务以支持异步请求的团队,可使用A2A协议。
  4. 希望在不安装额外依赖的情况下使用Python标准库构建智能体的开发者。
  5. 研究越南语NLP的用户,可利用现成的分词、NER和情感分析功能。

如何安装或部署这个 Agent?

通过pip安装:pip install underthesea。该库支持Python 3.10至3.14。对于服务功能,可安装额外依赖:pip install 'underthesea[agent-server]'(包括uvicorn和starlette)。

如何使用这个 Agent?

设置环境变量(如OPENAI_API_KEY或ANTHROPIC_API_KEY)或直接传入API密钥。然后创建Agent并调用:

from underthesea.agent import Agent, LLM
agent = Agent(name="assistant", provider=LLM())
agent("Hello!")

对于流式输出,使用agent.stream()。要启用工具调用,定义函数并使用Tool包装,传递给Agent。对于多会话,创建Session并运行任务。

这个 Agent 有哪些优点和局限?

优点
  • 零外部依赖,仅使用Python标准库,减少安装负担。
  • 支持多个主流LLM提供商,切换方便。
  • 内置A2A协议服务,方便集成到现有系统。
  • 整合越南语NLP功能,适合越南语场景。
  • 自动跟踪功能,便于调试和监控。
局限
  • 仅支持指定的提供商,不支持其他如Cohere等。
  • A2A服务需要额外安装依赖。
  • 多会话功能需要手动管理进度文件。
  • 高级功能(如Langfuse)需要额外安装。
  • 文档可能不完整,需参考README和NLP.md。

这个 Agent 与同类方案有什么区别?

与Anthropic Harness模式相比,它提供了类似的长期运行智能体功能,但更专注于多提供商和NLP集成。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Underthesea - 越南语智能体工具包 当前 47 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.8k 1 个月前 Python OpenAI API · Claude API
Sprix SAGE Router 69 · 存在缺口 命令行工具免费 ★ 3.6k 1 个月前 Python —
OpenCrabs 终端智能体 53 · 缺口较多 命令行工具免费 + 模型费 ★ 998 今天 Rust ChatGPT · Codex · OpenAI API · Claude API
ClawCodex 51 · 缺口较多 命令行工具免费 + 模型费 ★ 911 今天 TypeScript ChatGPT · OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
47/ 100 五分制 2.4 / 5
信任安全 7/29
可靠稳定 8/14
适用触发 10/18
规范维护 10/18
有效结果 9/13
证据核验 3/8
查看各维度的扣分理由
信任安全7 / 29 · 1.2/5

证据显示:Agent 默认工具包含 shell 和 python exec,权限较大,但未提供最小权限配置或用户确认机制;数据流透明度有限,仅提及自动追踪到 ~/.underthesea/traces/,但未说明数据流向;敏感数据处理未明确;依赖安全未提供锁定或审计;外部影响包括网络请求和文件写入,但未说明用户确认;回滚机制未提及;来源归属仅通过作者信息,未验证。扣分原因:缺少权限控制、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响控制、回滚机制。

可靠稳定8 / 14 · 2.9/5

证据显示:README 与 pyproject.toml 描述一致,Agent 模块声称零外部依赖,但 pyproject 中 agent 可选依赖为空,与声明一致;依赖可用性方面,核心依赖如 requests、PyYAML 等常见,但未提供锁定版本;失败消息未在文档中说明。扣分原因:失败消息未说明,依赖版本未锁定。

适用触发10 / 18 · 2.8/5

证据显示:README 明确面向开发者,提供多种使用场景(快速开始、流式、工具调用、多会话、追踪、服务);能力边界通过工具列表和架构图说明;触发精度方面,工具调用示例明确,但未说明触发条件;环境适配方面,支持 Python 3.10+,多操作系统,但未说明特定环境要求。扣分原因:触发精度未详细说明。

规范维护10 / 18 · 2.8/5

证据显示:信息架构清晰,README 有目录;安装说明简单;命名稳定,版本号明确;示例丰富,有快速开始和工具调用示例;已知限制未明确列出;许可证为 Apache-2.0;版本变更日志未提供;维护责任通过作者和贡献指南说明。扣分原因:已知限制未列出,版本变更日志缺失。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性方面,示例展示了清晰的输出格式;边际价值方面,提供多提供商支持和内置工具,具有独特价值;成本效益方面,零外部依赖降低安装成本,但未提供性能数据。扣分原因:未提供性能或成本数据。

证据核验3 / 8 · 1.9/5

证据显示:README 中的声明(如零外部依赖)可在 pyproject.toml 中部分验证;跨来源验证有限,仅依赖 README 和 pyproject;事实与推断分离方面,README 区分了功能描述和示例,但未明确标注推断。扣分原因:跨来源验证不足,事实与推断分离不明确。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 默认工具包含 shell 和 python exec,权限较大,需谨慎使用。
  • 未提供用户确认机制,Agent 可能自动执行高权限操作。
  • 数据流透明度有限,自动追踪可能记录敏感信息。
  • 依赖未锁定版本,存在供应链风险。
  • 未提供回滚机制,操作不可逆。
证据充分度:低 评估于 2026年8月11日 审查版本 0fd222c1d892 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. underthesea-v9.5.0 v9.5.0 — A2A Agent Server
    发布说明摘录
    Highlights - A2A-compatible HTTP server adapter (underthesea.agent.server) — wraps any Agent so it speaks JSON-RPC 2.0 message/stream over HTTP with SSE streaming, plus a discoverable AgentCard and an optional bundled chat UI ([#1016](https://github.com/undertheseanlp/underthesea/pull/1016)) - make_app(agent, path=...) returns a raw ASGI callable — no web framework dep at the library level; plug into uvicorn / hypercorn / daphne / granian - serve(agent, ui=True) — one-line uvicorn entrypoint with bundled chat UI at {path}/ui …
    在 GitHub 查看 ↗
  2. underthesea-v9.4.0 v9.4.0 — Agent Tracing
    发布说明摘录
    What's New Agent Tracing ([#1003](https://github.com/undertheseanlp/underthesea/pull/1003)) Every agent call is now automatically traced — like Claude Code. - LocalTracer: auto-saves JSON traces to ~/.underthesea/traces/ with datetime-prefixed filenames, console output with timing and token usage - LangfuseTracer: sends traces to Langfuse v4 with full hierarchy (agent → generation → tool), token usage, and cost tracking - @trace decorator: wrap any function to create traces; nested decorated functions become child spans automatically via contextvars …
    在 GitHub 查看 ↗
  3. v9.3.0 underthesea v9.3.0
    发布说明摘录
    Highlights Agentic AI — underthesea now ships a multi-provider agent harness with zero external LLM SDK dependencies. Agent harness (#988) - Multi-provider support: OpenAI, Azure OpenAI, Anthropic, Gemini — each provider is a standalone class using raw HTTP (urllib + json) - Zero external dependencies: no openai, anthropic, or google-genai packages required - LLM auto-detect: automatically selects provider from env vars (Azure > OpenAI > Anthropic > Gemini) - Streaming: Agent.stream() + chat_stream() across all providers via SSE …
    在 GitHub 查看 ↗

常见问题

是否支持Azure OpenAI?
支持,提供AzureOpenAI类,需要API密钥、端点和部署名称。
如何启用流式输出?
使用agent.stream()方法,会生成文本块。
能否在无网络环境中使用?
不能,需要连接LLM API。
如何添加自定义工具?
定义函数,用Tool包装,并传递给Agent的tools参数。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents