aipy 智能体学习2:源码运行执行轨径主干

aipy 智能体学习0:源码概览

aipy 智能体学习1:源码运行起来

aipy 智能体学习2:源码运行执行路径

项目的命令入口在 pyproject.toml,对应 aipyapp.main :main;总入口在 aipyapp/main.py。

参数解析

更新版本

同步配置

初始化配置

获取main get_aipy_main里,默认进入cli_task里的main

打印Logo

初始化显示效果管理器

初始化任务管理器

检查更新

检查LLM配置

获取执行命令

获取运行任务的 JSON 文件路径

从 JSON 文件加载任务 或 创建新任务

运行命令

任务完成(保存等)

运行交互式控制台

到这里只是初始化及启动交互式CMD界面。

继续到这里向后看: InteractiveConsole(tm, console, settings).run() # 运行交互式控制台

死循环

切换到主模式

获取user_input (如果不是命令(带/开头是命令),则创建新任务并进入任务模式)

执行命令 (处理带/开头是命令)

如果命令返回 TaskModeResult,则进入任务模式

如果有指令,则创建新任务

如果没有指令,则使用现有任务

进入任务模式

主模式与任务模式的区别

代码中的关键区别已经明确:主模式负责接收新的命令或用户指令,任务模式则绑定到一个具体任务,并持续处理该任务的对话。两者都由同一个命令上下文切换,而不是两个独立的程序入口。

主模式

  • 入口是主命令提示符 >>
  • 负责管理应用级操作,例如执行命令、查看任务、加载任务等。
  • 普通输入不会直接执行,而是新建任务并进入任务模式。
  • 命令返回 TaskModeResult 后,也会进入任务模式。
  • 每次进入主模式时会清空当前任务。

相关代码:cli_task.py:201-229、common.py:35-62

任务模式

  • 入口是 >>>
  • 绑定到一个具体任务,后续输入会发送给该任务。
  • 普通输入会执行 task.run(),以继续完成当前任务。
  • 以斜杠开头的输入会按命令执行。
  • 输入 /done 或 done,或按 Ctrl+D,都会结束任务模式。
  • 结束后会调用 task.done(),完成任务状态更新。

相关代码:cli_task.py:164-199

典型流程

  1. 主模式输入普通指令。
  2. 程序创建新任务。
  3. 进入任务模式,提示 >>>
  4. 用户持续向任务发送指令。
  5. 输入 /done 或 Ctrl+D 后返回主模式。

可以理解为:

  • 主模式:"管理整个应用、选择或创建任务"
  • 任务模式:"继续执行当前任务的对话"

继续进入任务start_task_mode

如果是指令

Enter Ctrl+d or /done to end current task

运行任务

如果指令以|开头,运行子任务,否则运行任务。

否则

重新开始任务

死循环

获取用户输入

看一个 hi

task.run 执行自动处理循环,直到 LLM 不再返回代码消息

step.run (请求LLM回复,处理工具调用,生成系统反馈消息)

rounds

什么时候退出循环呢?

没有system_feedback或达到了max_rounds就退出。

AI相关服务

1.AI工具配置:安装、切换DeepSeek或千问等国内外大模型及agent|50

2.AI软件定制:本地部署DeepSeek、千问等开源大模型、智能体|1000

3.企业AI Agent:公司流程AI Agent接入、自动化、辅助评审与决策|2000

案例1:AI评审代码

案例2:公司流程AI Agent接入

相关推荐
辣知33 分钟前
辣知·化智93 被历史尘封的鬻子
学习
每天题库2 小时前
西藏安全员 A 证备考真题题库 强化重点知识刷题提升通过率
学习·安全·考试·题库·考证
Be for thing2 小时前
PyTorch基础|Tensor张量详解,张量创建、数据类型与常用操作
pytorch·学习·1024程序员节
前进的李工3 小时前
Agent 学习笔记 02:Harness 与工作流怎么理解
笔记·学习·agent·工作流·harness
m4Rk_3 小时前
【论文阅读】Agent记忆机制(114):MemoryTax——当 Agent 能自主搜索历史,专门的记忆系统还划算吗?
论文阅读·人工智能·学习·开源·github
程序员梅雨5 小时前
【从零开始学习数据仓库 | 第一篇】:维度建模理论
大数据·数据仓库·学习·阿里云·数据分析
keyipatience6 小时前
Git学习(4)Git分布式优势与实战配置全解析
git·学习
comyccccc9 小时前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习
叼烟扛炮9 小时前
Linux 学习笔记(三十六):并发进阶——读写锁 vs 自旋锁,到底怎么选?
linux·运维·服务器·笔记·学习
是隼人9 小时前
buuctf-pwn [极客大挑战 2019]Not Bad(orw+jmp)题解(学习过程持续更新)
学习·安全·pwn入门·ctf入门