Underthesea - 越南语智能体工具包
零依赖的多提供商AI智能体框架,内置越南语NLP处理能力,支持OpenAI、Azure、Anthropic和Gemini。
- Star 数
- ★ 1.8k
- 最近更新
- 1 个月前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 47/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 需要集成多个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等函数,可直接用于文本处理。
- 需要集成多个LLM提供商(OpenAI、Anthropic等)的开发者,只需切换Provider类即可。
- 需要构建长期运行的多会话智能体,例如研究助手,可跨会话保持上下文。
- 需要将智能体暴露为HTTP服务以支持异步请求的团队,可使用A2A协议。
- 希望在不安装额外依赖的情况下使用Python标准库构建智能体的开发者。
- 研究越南语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?
查看各维度的扣分理由
证据显示:Agent 默认工具包含 shell 和 python exec,权限较大,但未提供最小权限配置或用户确认机制;数据流透明度有限,仅提及自动追踪到 ~/.underthesea/traces/,但未说明数据流向;敏感数据处理未明确;依赖安全未提供锁定或审计;外部影响包括网络请求和文件写入,但未说明用户确认;回滚机制未提及;来源归属仅通过作者信息,未验证。扣分原因:缺少权限控制、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响控制、回滚机制。
证据显示:README 与 pyproject.toml 描述一致,Agent 模块声称零外部依赖,但 pyproject 中 agent 可选依赖为空,与声明一致;依赖可用性方面,核心依赖如 requests、PyYAML 等常见,但未提供锁定版本;失败消息未在文档中说明。扣分原因:失败消息未说明,依赖版本未锁定。
证据显示:README 明确面向开发者,提供多种使用场景(快速开始、流式、工具调用、多会话、追踪、服务);能力边界通过工具列表和架构图说明;触发精度方面,工具调用示例明确,但未说明触发条件;环境适配方面,支持 Python 3.10+,多操作系统,但未说明特定环境要求。扣分原因:触发精度未详细说明。
证据显示:信息架构清晰,README 有目录;安装说明简单;命名稳定,版本号明确;示例丰富,有快速开始和工具调用示例;已知限制未明确列出;许可证为 Apache-2.0;版本变更日志未提供;维护责任通过作者和贡献指南说明。扣分原因:已知限制未列出,版本变更日志缺失。
证据显示:输出可用性方面,示例展示了清晰的输出格式;边际价值方面,提供多提供商支持和内置工具,具有独特价值;成本效益方面,零外部依赖降低安装成本,但未提供性能数据。扣分原因:未提供性能或成本数据。
证据显示:README 中的声明(如零外部依赖)可在 pyproject.toml 中部分验证;跨来源验证有限,仅依赖 README 和 pyproject;事实与推断分离方面,README 区分了功能描述和示例,但未明确标注推断。扣分原因:跨来源验证不足,事实与推断分离不明确。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 默认工具包含 shell 和 python exec,权限较大,需谨慎使用。
- 未提供用户确认机制,Agent 可能自动执行高权限操作。
- 数据流透明度有限,自动追踪可能记录敏感信息。
- 依赖未锁定版本,存在供应链风险。
- 未提供回滚机制,操作不可逆。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
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 查看 ↗ -
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 查看 ↗ -
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 查看 ↗