夜雨聆风学习资料网

ARTICLE · 1143003

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

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接入

相关学习资料