Upsonic 智能体框架
用 Python 构建具备受限工作区、工具调用与文档 OCR 能力的自主或传统智能体。
按维度查看评分与理由
证据显示:README声明所有文件和shell操作限制在workspace内,阻止路径遍历和危险命令,但未提供实现细节或测试证明。存在SECURITY.md提供负责任披露流程,但未提及权限最小化或用户确认机制。依赖中包含sentry-sdk(遥测)和opentelemetry,但conftest.py强制禁用遥测,表明默认可能启用。未发现用户确认机制。数据流透明度有限,未说明数据如何被处理或传输。敏感数据处理未明确。依赖固定版本较少,多为范围版本,存在供应链风险。外部效果方面,工具如web_search可能产生外部调用,但未明确限制。回滚机制未提及。来源归属方面,作者信息在pyproject.toml中,但发布者未验证。扣分原因:缺乏用户确认、数据流透明度不足、敏感数据处理不明确、依赖版本范围宽、外部效果未明确限制、无回滚机制。
证据显示:项目有CI工作流(.github/workflows/ci.yml)在Python 3.10-3.12上运行单元测试,表明一定的一致性。依赖众多,但未提供锁定文件,依赖可用性存在风险。失败消息方面,测试中有处理DisallowedOperation异常的钩子,但生产代码的失败消息未评估。扣分原因:依赖未锁定,失败消息未充分展示。
证据显示:README展示了多种使用场景(自主代理、传统代理、OCR),受众明确为Python开发者。能力边界方面,声明了workspace限制,但未详细说明。触发精度方面,工具定义有docstring,但未展示精确触发机制。环境适配方面,支持多种Python版本和可选依赖,但未说明特定环境要求。扣分原因:触发精度证据不足,环境适配细节有限。
证据显示:README结构清晰,包含安装、快速开始、文档链接。安装说明明确(uv pip install upsonic)。命名稳定性方面,版本号0.77.3,但未提供变更日志。示例和FAQ有多个示例代码。已知限制未明确列出。许可证MIT在README和pyproject.toml中。版本控制有pyproject.toml版本,但无CHANGELOG。维护责任方面,有作者和社区链接。扣分原因:缺少变更日志和已知限制说明。
证据显示:输出可用性方面,示例展示了如何获取结果(print_do),但未说明输出格式。边际价值方面,提供了多种功能(自主代理、OCR、工具集成),具有差异化。成本效益方面,未提供性能或成本数据。扣分原因:输出格式未明确,成本效益无证据。
证据显示:README中的声明(如workspace限制)未在代码中验证,但存在测试文件(tests/_pipeline_injection.py)表明测试存在。跨来源佐证方面,文档链接存在但未验证。事实与推断分离方面,README中的声明多为断言,未区分事实和推断。扣分原因:声明缺乏代码验证,跨来源佐证不足。
- 依赖版本范围宽,建议锁定版本以降低供应链风险。
- 遥测默认可能启用,需确认数据隐私。
- workspace限制声明未在代码中验证,需审查实现。
- 缺少用户确认机制,自主代理可能执行意外操作。
这个 Agent 能做什么,适合哪些场景?
Upsonic 是一个 Python 框架,用于构建类似 OpenClaw 和 Claude Cowork 的自主智能体,以及传统智能体系统。它提供 `AutonomousAgent`、`Agent` 与 `Task` 接口,并以模型标识作为初始化参数。自主智能体的文件和 shell 操作限制在指定 `workspace` 内,文档说明会阻止路径遍历和危险命令。传统智能体可在 `Task` 中接收用 `@tool` 定义的 Python 函数,也可进一步接入 MCP Tools。项目还提供分层 OCR 接口:Layer 0 处理文档准备,Layer 1 运行 OCR 引擎;README 列出多种可选引擎。
使用者创建 AutonomousAgent(model=..., workspace=...) 和 Task 后,调用 agent.print_do(task) 执行任务,例如分析服务器日志并检测异常模式;相关文件与 shell 操作被限定在 workspace。对于传统流程,使用者创建 Agent,将任务描述及可选 tools 放入 Task,再调用 agent.print_do(task);示例中的 @tool 函数计算两个浮点数之和。OCR 流程通过 OCR(layer_1_ocr_engine=EasyOCREngine(...)) 配置引擎,并以 ocr.get_text("invoice.pdf") 从文档取得文本。
- 运维或开发人员需要在指定日志工作目录中让自主智能体分析服务器日志并检测异常模式。
- Python 开发者要为“分析当前市场趋势”这类自然语言任务创建具名传统智能体。
- 应用开发者需要把现有 Python 函数包装为
@tool,让计算类任务调用,例如计算 15 加 27。 - 需要连接外部数据源或服务的团队,可按文档的后续集成路径接入 MCP Tools。
- 需要从发票等文档提取文字的 Python 项目,可安装 OCR extra 并配置
EasyOCREngine。
这个 Agent 有哪些优点和局限?
- 以
workspace为边界约束自主智能体的文件与 shell 操作,并明确说明会阻止路径遍历和危险命令。 - 同时提供
AutonomousAgent与Agent,覆盖自主执行和较传统的任务式智能体接口。 - 任务可直接携带通过
@tool声明的 Python 函数,并有 MCP Tools 的集成路径。 - 内置统一的分层 OCR 抽象,README 明确列出 EasyOCR、RapidOCR、Tesseract、PaddleOCR 与 DeepSeek 相关引擎。
- README 示例只展示
anthropic/claude-sonnet-4-5,未给出其他模型提供商的配置或兼容性说明。 - 未说明模型认证所需的凭据、环境变量、费用或请求失败时的处理方式。
- 工作区限制仅明确覆盖文件和 shell 操作;外部 MCP 服务的权限、认证和网络边界未在所给资料中说明。
- 隔离云执行环境被描述为需另行连接的 E2B Sandbox Provider,而非开箱即用的部署步骤。
如何安装或部署这个 Agent?
基础安装:uv pip install upsonic。OCR 功能安装:uv pip install "upsonic[ocr]"。README 的模型示例使用 model="anthropic/claude-sonnet-4-5",但未说明所需凭据、环境变量或认证配置。
如何使用这个 Agent?
最小自主调用:from upsonic import AutonomousAgent, Task;创建 AutonomousAgent(model="anthropic/claude-sonnet-4-5", workspace="/path/to/logs"),再执行 agent.print_do(Task("Analyze server logs and detect anomaly patterns"))。传统智能体则导入 Agent, Task,创建 Agent(model="anthropic/claude-sonnet-4-5", name="Stock Analyst Agent"),并调用 agent.print_do(Task(description="Analyze the current market trends"))。
这个 Agent 与同类方案有什么区别?
README 将 Upsonic 定位为可构建类似 OpenClaw 和 Claude Cowork 的自主智能体的框架,同时也支持传统智能体系统;所给资料未提供三者的功能对比或兼容性结论。
常见问题
它需要访问本机文件和终端吗?
workspace;README 说明路径遍历和危险命令会被阻止。能否使用自己的 Python 业务函数?
@tool 修饰的函数放入 Task(tools=[...]),README 示例展示了一个求和函数。