Upsonic ai agent框架学习心得
学习目标:
- 掌握Upsonic主要流程
学习内容:
- Upsonic项目主要源代码
学习时间:
2025-03-15 10:00-15:00
学习产出:
- 学习心得
心得总结如下:
Upsonic 极大的降低了搭建AI agent的使用门槛,其优秀的代码结构直观易懂,对个人掌握Agent相关知识、运行流程帮助很大。
1. 整体架构
Upsonic offers a cutting-edge enterprise-ready framework where you can orchestrate LLM calls, agents, and computer use to complete tasks cost-effectively. It provides more reliable agents, scalability, and a task-oriented structure that you need while completing real-world cases.
2. AI agent执行主要流程
流程说明:
- 创建Graph,一个Graph由TaskChain、TaskNode、决策节点DecisionLLM/DecisionFunc、运行状态State组成
- 顺序执行Graph,将待执行节点放到execution_queue中
- 每次执行时POP出队节点node,针对node节点类型进行不同的处理
- 如果是TaskNode则直接_execute_task,并将执行结果输出存在运行状态state中
- 如果是DecisionLLM,则生成decision prompt并调用llm,大模型决定执行哪个分支;如果是DecisionFunc则本地执行func,由执行结果决定执行哪个分支。根据分支类型将分支对应的TaskNode、TaskChain中的TaskNode、另外一个DecisionLLM、DecisionFunc 添加到队列头
TaskNode执行流程
流程说明:
- 根据task配置agent、或graph默认agent、或已运行节点的agent获取runner
- runner可以分为Direct和AgentConfiguration两种,都需要get_or_create_client获取UpsonicClient. Direct获取的是level one的Call client,而AgentConfiguration获取的是Agent client或MultiAgent client
- 获取到UpsonicClient后直接调用call就可以拿到返回结果response
- 基于ReliabilityProcessor再对response进行处理,提高结果的准确性
给出的准确性指标如下:
Client call执行流程
流程说明:
- client 发起http call请求level one server 或 level two server
- Upsonic server根据请求参数,llm_model、tools、prompt、system_prompt等统一调用agent_creator创建Pydantic Agent. 创建Pydantic Agent时会根据llm_model选择对应的Model类型如OpenAiModel、AnthropicModel、AsyncAnthropicBedrock。如果传了tools参数,则会发起http请求tool server,拿到tools列表,并进行名称匹配。对匹配的tool创建动态函数,并进行wrap形成Callable,最后通过Pydantic tool plain传入Agent. Pydantic ai执行调用tool时,会调用此Callable函数,并间接通过http call_tool调用tool server.
- 获取到Pydantic Agent后直接调用run就可以得到结果result,对result进行拆封装成UpsonicClient需要的格式
.
写在最后
现在各种AI agent框架层出不穷,五花八门,但是底层原理不是特别复杂的技术,本质上还是一些API的封装和编排。不用刻意将每种agent框架都用一遍,仅需将一个Agent框架执行过程掌握清楚即可。通过对Upsonic项目的学习,个人对Agent的认知又更加深了,相信今后工作中Agent的应用场景会越来越多