news 2026/9/20 21:33:26

10分钟跑通第一个AI智能体:Python自主智能体框架Upsonic完整实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10分钟跑通第一个AI智能体:Python自主智能体框架Upsonic完整实战指南

10分钟跑通第一个AI智能体:Python自主智能体框架Upsonic完整实战指南

【免费下载链接】gpt-computer-assistantBuild autonomous AI agents in Python.项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-computer-assistant

每天收盘后,你还需要手动查行情、翻公告、整理数据,再敲出一份分析报告?对一个小团队来说,这类重复劳动会吃掉整个晚上。这篇文章用 Upsonic(GPT-Computer-Assistant)做一个股票分析智能体:它自己调用行情工具拿数据、带着记忆连续分析、最后多智能体协作产出结构化报告,全程 Python 实现,核心代码不到 30 行。

Upsonic 帮你省掉的四件事

Upsonic 是一个纯 Python 的自主智能体框架,MIT 协议,pip install upsonic即可装好。它把智能体开发中反复出现的四块"脏活"收进了框架里:

  • 自己拼 LLM 调用与工具路由→ 框架封装了AgentTask两个核心抽象,你只描述任务,模型调哪个工具、调几次由框架托管
  • 每个数据源都要手写 API 集成→ 内置 工具模块 提供现成生态,金融数据、网页搜索、代码执行等按开关启用
  • 智能体每次对话都"失忆"→ Memory 模块 提供可持久化的跨任务记忆,就像给智能体配了个记事本
  • 复杂任务一个人干不完→ Team 模块 原生支持多智能体分工,三种协作模式覆盖常见编排需求

传统做法和它的对比大概是这样:

传统做法Upsonic 做法
手写 LLM 对话循环 + 工具分发agent.do(task)一行托管
每个数据源写一遍请求封装内置工具类,构造时勾选能力
用数据库表记会话,自己拼上下文Memory 自动存取,支持 SQLite/Redis/Postgres
用消息队列自研多智能体编排Team 三种模式开箱即用

安装 Upsonic 并配置第一个可运行智能体

安装只要一条命令,支持 pip 或 uv:

uv pip install upsonic # 或 pip install upsonic

然后把模型密钥写进项目根目录的.env,框架启动时会自动读取:

OPENAI_API_KEY=your_api_key_here ANTHROPIC_API_KEY=your_api_key_here

接下来是最小可运行路径——四行代码跑通第一个智能体:

from upsonic import Agent, Task agent = Agent(model="openai/gpt-4o", name="Stock Analyst") result = agent.do(Task(description="分析当前美股大盘走势")) print(result)

这段代码在做什么:创建一个绑定 GPT-4o 的智能体,把"分析大盘"描述成一个任务丢给它,do会跑完整轮推理并返回文本结果。如果想在终端里看到工具调用过程,把do换成print_do即可。到这里,你已经有了智能体的"空壳",下面开始往里面装能力。

核心实战:搭建一个股票分析智能体

整个案例围绕一个业务场景:收盘后自动完成"取数 → 分析 → 出报告"。分四块搭。

给智能体挂上金融数据工具

智能体要分析股票,得先能拿到数据。Upsonic 内置了基于 Yahoo Finance 的 YFinanceTools,按构造函数开关选择要启用的子能力:

from upsonic.tools.common_tools import YFinanceTools tools = YFinanceTools(stock_price=True, company_news=True) agent = Agent(model="openai/gpt-4o", name="股票分析师", tools=tools) agent.print_do(Task(description="分析NVDA近一个月股价表现,结合最新新闻判断短期趋势"))

工具类不需要你写任何请求逻辑,智能体在推理过程中会自己决定何时调stock_price、何时调company_news。两个关键参数值得留意:构造函数里的布尔开关决定暴露哪些工具,工具数量越少,模型的调用决策越不容易出错;tools也可以挂在单个Task上而非智能体上,实现按任务临时加能力。

为智能体配置持久化记忆

连续分析时你肯定不希望它每轮都忘掉上一轮结论。Memory 就像给智能体配了一个记事本,把会话历史存进存储后端:

from upsonic.storage import Memory from upsonic.storage.providers.sqlite import SqliteStorage storage = SqliteStorage(db_file="agent_memory.db") memory = Memory(storage=storage, session_id="analysis_001", full_session_memory=True) agent = Agent(model="openai/gpt-4o", memory=memory)

配好之后,先问"NVDA 上个月表现如何",再问"那它最近有负面新闻吗",第二个任务会自动携带前一个的上下文。这一步是整个流程中唯一需要你显式配置的环节,而且换后端只需换一行:storage支持内存、SQLite、Redis、Postgres 等,接口在 storage 模块 下。session_id是记忆的隔离维度,不同标的、不同客户各开一个会话即可互不串扰。

用 Team 拆分"取数—分析—写作"流水线

单个智能体干所有事,提示词会越写越长,职责也模糊。Upsonic 的 Team 让你把流程切成几个专职角色:

from upsonic import Team data_agent = Agent(model="openai/gpt-4o", name="数据专员", tools=tools) report_agent = Agent(model="openai/gpt-4o", name="报告专员") team = Team(name="股票分析团队", agents=[data_agent, report_agent], mode="sequential") team.print_do(Task(description="完成对NVDA的全面分析,产出含数据、逻辑、结论的结构化报告"))

mode是关键参数,三种取值对应不同拓扑:sequential按顺序接力,前一个的输出作为后一个的输入;coordinate由 leader 智能体协调成员分头干活再汇总;route由 router 把任务分发给最合适的成员。多数线性流水线选sequential就够,需要"总调度"语义时再换coordinate

用 AutonomousAgent 处理工作目录里的文件

报告素材往往散落在文件夹里:财报 PDF、会议记录、日志。这类"要动手操作文件"的任务,用框架专门预配置的AutonomousAgent,它自带文件读写和 shell 工具:

from upsonic import AutonomousAgent agent = AutonomousAgent(model="openai/gpt-4o", workspace="./reports") agent.print_do(Task("读取目录下的季度财报文件,提取三项关键风险并写入 risk_summary.md"))

注意workspace参数:所有文件和 shell 操作都被沙箱限制在这个目录内,路径穿越和危险命令会被拦截。这让"让模型执行命令"这件事变得可控——沙箱边界就是安全边界,blocked_commands还能追加自定义黑名单。

进阶方向:文档解析、自定义工具与现成智能体

OCR 文档解析。扫描版 PDF 直接给智能体读不了,Upsonic 提供分层 OCR 管线:Layer 0 负责 PDF 转图与预处理,Layer 1 跑识别引擎。安装upsonic[ocr]后,初始化OCR并传入EasyOCREngine等引擎即可调用get_text("file.pdf"),引擎支持 EasyOCR、PaddleOCR、Tesseract 等,见 ocr 模块。

自定义工具。业务独有的计算用装饰器就能注册:

from upsonic.tools import tool @tool def volatility(prices: list[float]) -> float: """计算一组收盘价的标准差""" ...

把返回的volatility加进tools列表,模型就能在推理中调用它。函数签名和 docstring 会自动转成工具 schema,不需要手写 JSON 描述。

预构建智能体。如果你不想从零配系统提示词,prebuilt 目录 下有社区维护的现成智能体(如 applied_scientist),每个都打包好了技能、系统提示和首条消息,装上就能跑,也可以照它的结构给体育、医疗等领域复刻自己的。

适用边界与下一步学习路径

Upsonic 适合数据密集型分析、文档处理、多智能体流水线这类"任务型"场景;它不适合低延迟高并发的在线实时服务——每个任务都会触发完整的多轮模型调用,延迟和 token 成本需要你自己评估。框架只负责编排,模型能力上限仍取决于你接入的模型。

下一步建议按这个顺序走:先看 tests/doc_examples/ 下按 agent、chat、memory、team 分好类的官方示例,每类都短小可直接运行;再对照 Documents/ai/explanation/ 里各模块的机制说明理解底层行为;遇到具体 API 参数,仓库 README 的 Quick Start 部分是最快的速查入口。跑通上面的股票案例后,把sequential换成coordinate、把 SQLite 换成 Redis,就是你熟悉的第二套配置了。

【免费下载链接】gpt-computer-assistantBuild autonomous AI agents in Python.项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-computer-assistant

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 21:32:08

QuickRecorder:一个不到 10MB 的免费 macOS 录屏工具

QuickRecorder:一个不到 10MB 的免费 macOS 录屏工具 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/9/20 21:28:37

Atlas 300V 24G加速卡解读:昇腾NPU上部署YOLO全流程实战

上周同事在项目群里甩过来一张截图,问题写得很直接:Atlas 300V 24G 是运算加速卡吗?看到这个问题我一下就笑了,因为一个月前我刚拿到这张卡时的反应一模一样——把它插进服务器PCIe槽,开机,习惯性敲nvidia-…

作者头像 李华
网站建设 2026/9/20 21:28:17

PolarDB Agent Express:企业级AI Agent PaaS的架构拆解与落地指南

最近在社区里看到不少人在讨论一个叫PolarDB Agent Express的产品名。奇怪的是,问法高度一致:"它到底是个独立产品,还是一堆东西拼起来的组合?"、"它和数据库是什么关系?"、"这名字看起来像个…

作者头像 李华
网站建设 2026/9/20 21:25:37

MCX:GPU加速蒙特卡洛光子传输模拟器的原理与实战

简介:MCX(Monte Carlo eXtreme)是一款基于蒙特卡洛方法的GPU加速三维光子传输模拟器,面向生物医学光子学、光电子学与光学工程领域的研究者,解决了传统CPU模拟在复杂介质中速度慢、耗时久的问题。该开源资源包共684个文…

作者头像 李华
网站建设 2026/9/20 21:24:06

使用 Chrome DevTools 调试 AVA 测试:debug 命令实战与原理剖析

使用 Chrome DevTools 调试 AVA 测试:debug 命令实战与原理剖析 【免费下载链接】ava Node.js test runner that lets you develop with confidence 🚀 项目地址: https://gitcode.com/gh_mirrors/ava/ava 本文聚焦 AVA(Node.js test …

作者头像 李华