☰
pi agent源码学习之面向对象视角下的几个核心对象
2026/10/3 11:46:22 网站建设 项目流程

完整的面向对象模型应分为:运行宿主、会话门面、执行器、模型运行时、持久化、扩展和事件流。

1.AgentSessionRuntime:运行宿主

定义:

  • packages/coding-agent/src/core/agent-session-runtime.ts

关系:

AgentSessionRuntime └─ AgentSession

职责:

  • 管理当前工作目录和 Agent 会话;
  • 创建、替换、恢复AgentSession;
  • 在 cwd 或配置变化时重建运行时服务;
  • 为 interactive、print、RPC 等模式提供统一会话宿主。

它不执行具体模型轮次,而是管理AgentSession的生命周期。


2.AgentSessionServices:服务集合

定义:

  • packages/coding-agent/src/core/agent-session-services.ts

它是一个服务组合对象,通常包含:

cwd agentDir ModelRuntime SettingsManager ResourceLoader

职责:

创建 ModelRuntime -> 创建 SettingsManager -> 加载 ResourceLoader -> 注册扩展 Provider -> 刷新模型状态 -> 提供给 AgentSession

它解决的是“一个会话需要哪些基础服务”的装配问题。


3.AgentSession:Coding Agent 会话门面

定义:

  • packages/coding-agent/src/core/agent-session.ts:331

这是 coding-agent 的核心业务对象,组合了:

AgentSession ├─ Agent ├─ SessionManager ├─ ModelRuntime ├─ ExtensionRunner ├─ 工具集合 └─ 压缩、重试、队列等逻辑

职责:

  • 接收用户 prompt;
  • 控制 Agent 执行;
  • 将 Agent 事件转换为 session 事件;
  • 将消息和模型变更持久化;
  • 管理模型和 thinking level;
  • 执行上下文压缩;
  • 管理 steering、follow-up 和 deferred action;
  • 协调工具、扩展和会话生命周期。

它是 coding-agent 对外暴露的会话控制门面。

重要区别:

Agent = 通用 Agent 执行器 AgentSession = coding-agent 的完整会话业务层

4.Agent:通用 Agent 执行对象

定义:

  • packages/agent/src/agent.ts:188

Agent负责通用的 Agent 状态和执行:

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

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

立即咨询