第5章 核心对象与配置系统

第5章 核心对象与配置系统

5.1 Agent(底层运行时)/ Session(编码场景封装)/ SessionManager(存储)三级对象

📌 网传版本里的 HarnessAgent 不属于 Pi 本体(那是 Vercel 适配器的类名,见第一部分 1.5)。Pi 本体真实的核心对象体系是下面这三级:

真实对象 来源包 作用
Agent pi-agent-core 最底层的代理实例,持有 systemPrompt、model,支持 subscribe() 订阅事件、prompt() 发起任务------"代理实例"概念最贴近的真实对应物
createAgentSession() / Session pi-coding-agent 面向编码场景封装好的会话对象,内置 CLI 使用的工具集、会话持久化,日常编程集成时最常打交道的对象
SessionManager pi-coding-agent 会话存储管理(SessionManager.inMemory() 临时会话,或落盘到 JSONL)
ModelRuntime / ModelRegistry pi-coding-agent 负责模型解析、鉴权信息关联

初始化示例(最底层):

ts 复制代码
import { Agent } from '@earendil-works/pi-agent-core';
import { getModel } from '@earendil-works/pi-ai';

const agent = new Agent({
  initialState: {
    systemPrompt: '你是一个乐于助人的编码助手。',
    model: getModel('anthropic', 'claude-sonnet-4-20250514'),
  },
});

编码场景更常用的封装:

ts 复制代码
import { createAgentSession, ModelRuntime, SessionManager } from '@earendil-works/pi-coding-agent';

const modelRuntime = await ModelRuntime.create();
const { session } = await createAgentSession({
  sessionManager: SessionManager.inMemory(),
  modelRuntime,
});

5.2 分层配置:全局 ~/.pi/agent/settings.json + 项目级 .pi/settings.json

📌 "PI 内核配置"真实对应的是分层设置系统,不是传给某个构造函数的配置对象。

配置文件 作用域
~/.pi/agent/settings.json 全局配置,对所有项目生效
.pi/settings.json 项目级配置,覆盖全局配置(对象字段做合并而非整体覆盖)
json 复制代码
{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-sonnet-4-20250514",
  "defaultThinkingLevel": "medium",
  "theme": "dark"
}

配置系统覆盖的常用字段类别一览(各字段详细含义分散在后续章节展开):

分类 关键字段
模型与思考 defaultProvider、defaultModel、defaultThinkingLevel、thinkingBudgets
项目信任 defaultProjectTrust(详见第四部分)
压缩 compaction.enabled、compaction.reserveTokens、compaction.keepRecentTokens
重试 retry.enabled、retry.maxRetries、retry.baseDelayMs、retry.provider.*
资源加载 packages、extensions、skills、prompts、enableSkillCommands
会话 sessionDir
Shell shellPath

相关推荐
国科安芯11 分钟前
算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错
网络·人工智能·嵌入式硬件·安全·边缘计算·低轨卫星·商业航天
kisdiem22 分钟前
让 AI 边玩游戏边编写世界规则:从 XLand 到 ARC-AGI-3 的实验记录
人工智能·agi·玩游戏
kaixin_啊啊1 小时前
【零基础学AI】第 27 章课后练习与答案
人工智能
慢慢来不要急1 小时前
Anthropic 自建源码控制,AI Agent 把 Git 跑到了极限 · 11-09
人工智能·开发工具
CyrusYiVPP1 小时前
实测 Ollama 本地部署:我用 Python 搓了个离线问答机器人,Qwen4 27B 一到换个模型名就能用
人工智能·python
美团技术团队1 小时前
美团 LongCat-2.5 开源:从看见,到抵达
人工智能
aifannihao1 小时前
AI 学习第 8 课:1200 列纯噪声 CV 出 0.47,泄漏在筛特征那步
人工智能·机器学习·scikit-learn·学习路线·数据泄漏
老金带你玩AI2 小时前
我宣布!Magpie就是版本答案!
人工智能
Rocky Ding*2 小时前
REPA-E技术深度解析:解冻 VAE 之后,扩散模型为什么需要选择梯度
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·repa-e
武雄(小星Ai)2 小时前
Ollama报llama-server binary not found排坑实录:服务活着引擎没了
人工智能·windows·大模型·ollama·排坑