完整的面向对象模型应分为:运行宿主、会话门面、执行器、模型运行时、持久化、扩展和事件流。
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 状态和执行: