ARTICLE · 1143003
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
典型流程
主模式输入普通指令。 程序创建新任务。 进入任务模式,提示 >>> 用户持续向任务发送指令。 输入 /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接入