从一堆赛事数据到一份分析报告:3 个模块跑通 Upsonic 智能体框架实战
2026/9/20 19:03:03 网站建设 项目流程

从一堆赛事数据到一份分析报告:3 个模块跑通 Upsonic 智能体框架实战

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

Upsonic(GPT-Computer-Assistant)是一个用 Python 构建自主 AI 智能体的开源框架——你说一句"分析这场比赛",智能体自己决定调哪个工具、怎么算、写什么结论。假设你要每周给球队出一份数据分析报告:拉原始数据、算指标、解读趋势、组织成文。这件事听起来琐碎,但正好覆盖了框架里最核心的三个部件:工具、记忆、团队。下面我们就拿这个场景当例子,从零把链路跑通。

🏀 先拆场景:一份分析报告要干哪几件事

拆开看,周报流程其实就是三步:

  • 拿数据、算指标:智能体需要能调用外部工具,比如请求接口、执行一段计算代码
  • 多轮追问:你看完结论想问"为什么",它得记得上一轮聊到哪
  • 分工协作:数据多、报告长时,一个智能体容易顾此失彼,需要拆给几个角色

框架里正好对应三块:工具系统、Memory 记忆、Team 多智能体。开工前先装好框架,一行命令uv pip install upsonic,再在.env里配一个模型 API 密钥(比如ANTHROPIC_API_KEY),就能开始跑任务了。

⚙️ 给智能体装上"手":用工具拉数据、算指标

工具在 Upsonic 里很好理解:一个带说明的普通 Python 函数,用@tool装饰一下,智能体就知道它存在、什么情况下该调。工具的实现可以翻 工具源码 看,common_tools目录下还内置了搜索、金融数据等现成工具,拿来即用。

下面这段代码定义了一个"算场均得分"的工具,交给智能体去回答一个具体分析问题:

from upsonic import Agent, Task from upsonic.tools import tool @tool def player_ppg(scores: list[float]) -> float: """计算球员场均得分。参数 scores:每场比赛得分列表。返回:场均分""" return sum(scores) / len(scores) agent = Agent(model="anthropic/claude-sonnet-4-5", name="体育分析助手") task = Task(description="球员A近5场得分[22, 18, 25, 30, 27],分析他的得分趋势", tools=[player_ppg]) agent.print_do(task)

终端会打印出智能体的分析过程和结论,其中场均分会由工具算出来,而不是模型"口算"。tools参数就像给智能体发的工具箱:不传它两手空空,传什么它就能用什么;想拿到返回值做后处理,用do(task)代替print_do(task)即可。工具解决了"能力"问题,但还有个细节:你追问时,它还记得前面说过什么吗?

🧠 让智能体记住上一轮:给会话装上记忆

记忆可以类比成给智能体发一个笔记本:每轮对话结束自动记下来,下次开工前先翻一遍。Memory支持整段会话、摘要、用户画像几种记法,存储后端也可以换——内存适合试跑,想跨进程保留就换 SQLite、Postgres 等后端,storage目录下都有现成实现,接口一致。

试试下面的两连问,第二个问题依赖第一个问题的结论:

from upsonic import Agent, Task from upsonic.storage import Memory, InMemoryStorage memory = Memory(storage=InMemoryStorage(), session_id="sports", full_session_memory=True) analyst = Agent(model="anthropic/claude-sonnet-4-5", name="数据分析师", memory=memory) analyst.print_do(Task("分析球员A最近5场的得分趋势")) analyst.print_do(Task("结合前面的结论,预判他下一场的状态"))

预期输出里,第二轮回答会直接引用第一轮的趋势判断,而不是重新泛泛而谈。到这里单兵作战已经成立,但周报真要落地,一个人往往顾不过来了——接下来把"分工"提上日程。

👥 一个人干不完,就组一个 Team

Team把多个智能体编到一起,相当于组了一个小项目组。它提供三种模式:sequential按顺序接力,route由路由智能体分发任务,coordinate让一个"队长"智能体负责拆解和分派,比较适合分析这种需要统筹的任务,团队模块 里有完整实现。

from upsonic import Agent, Team, Task data_agent = Agent(model="anthropic/claude-sonnet-4-5", name="数据分析师") stat_agent = Agent(model="anthropic/claude-sonnet-4-5", name="战术分析师") report_agent = Agent(model="anthropic/claude-sonnet-4-5", name="报告撰写员") team = Team(entities=[data_agent, stat_agent, report_agent], mode="coordinate") team.print_do(Task("完成上周比赛的全面分析并输出报告"))

队长会先拆解任务、分派给对应智能体,最后汇总成一份完整报告打印出来——整个过程你只下发了一句话。链路通了之后,还可以再往上走一步,让智能体自己去翻文件、跑任务。

🚀 进阶玩法:让智能体自己翻文件、跑任务

框架里还有个AutonomousAgent,可以理解为"放养模式":给它一个工作目录,它就能自己读写文件、执行命令,且所有操作都被限制在目录内,越界路径和危险命令会被直接拦截,用来处理扫描版赛事报告这类杂活很合适。

from upsonic import AutonomousAgent, Task agent = AutonomousAgent(model="anthropic/claude-sonnet-4-5", workspace="./match_reports") agent.print_do(Task("解析目录里的所有比赛报告,汇总得分并输出一周小结"))

输出就是一份基于目录里现有数据生成的周度小结。如果报告是扫描版 PDF,框架内置的 OCR 模块会先把文件转成图片再识别文本,结果可以直接喂给前面的分析流程;再配上安全引擎对输入输出做规则过滤,这套 AI 体育分析系统就从"能跑"走向"敢用"了。

把第一段代码先跑起来,你的第一个分析智能体就上岗了。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询