Underthesea - 越南语智能体工具包
零依赖的多提供商AI智能体框架,内置越南语NLP处理能力,支持OpenAI、Azure、Anthropic和Gemini。
证据显示: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 区分了功能描述和示例,但未明确标注推断。扣分原因:跨来源验证不足,事实与推断分离不明确。
- 默认工具包含 shell 和 python exec,权限较大,需谨慎使用。
- 未提供用户确认机制,Agent 可能自动执行高权限操作。
- 数据流透明度有限,自动追踪可能记录敏感信息。
- 依赖未锁定版本,存在供应链风险。
- 未提供回滚机制,操作不可逆。
这个 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 有哪些优点和局限?
- 零外部依赖,仅使用Python标准库,减少安装负担。
- 支持多个主流LLM提供商,切换方便。
- 内置A2A协议服务,方便集成到现有系统。
- 整合越南语NLP功能,适合越南语场景。
- 自动跟踪功能,便于调试和监控。
- 仅支持指定的提供商,不支持其他如Cohere等。
- A2A服务需要额外安装依赖。
- 多会话功能需要手动管理进度文件。
- 高级功能(如Langfuse)需要额外安装。
- 文档可能不完整,需参考README和NLP.md。
如何安装或部署这个 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 与同类方案有什么区别?
与Anthropic Harness模式相比,它提供了类似的长期运行智能体功能,但更专注于多提供商和NLP集成。