来源: ranxianglei/billion-context-pi#433 (增接 rule 命令,专门用来记住用户对模型的特别提醒) 分析该跨仓功能时发现——本 issue 为其内核(acp-kernel)侧实现。
需求(来自 billion-context-pi#433)
三仓(billion-context-pi / billion-context / acp-kernel)增加 acp_rule 工具记录持久提醒,以内核为主。内核侧提供:
CompressionState.rules?: RuleRecord[]({id, text}),可选字段,旧持久化状态向后兼容
- 辅助函数:
listRules / allocateRuleId / addRule / removeRule / clearRules / formatRulesForPrompt;addRule 校验:非空、单条字符上限(默认 300)、总条数上限(默认 50)、相同内容去重
ALWAYS_PROTECTED_TOOLS 增加 "acp_rule" —— 调用+结果默认从压缩范围硬排除(#433 第 1 点「默认保护」)
RULES_USAGE_PROMPT 提示词片段 + RULE_TOOL_NAME / DEFAULT_RULE_LIMITS 常量
功能开关(默认关闭)放在各适配器(pi 的 acp.json / billion-context 三级配置);内核不加新 Config 字段,保护无条件生效(功能关闭时不存在 acp_rule 消息,无副作用)。
验证
npm run typecheck 通过
tests/rules.test.ts 10/10 通过(含压缩排除保护集成测试)
- 全量测试套件 748/748 通过
来源: ranxianglei/billion-context-pi#433 (增接 rule 命令,专门用来记住用户对模型的特别提醒) 分析该跨仓功能时发现——本 issue 为其内核(acp-kernel)侧实现。
需求(来自 billion-context-pi#433)
三仓(billion-context-pi / billion-context / acp-kernel)增加 acp_rule 工具记录持久提醒,以内核为主。内核侧提供:
CompressionState.rules?: RuleRecord[]({id, text}),可选字段,旧持久化状态向后兼容listRules/allocateRuleId/addRule/removeRule/clearRules/formatRulesForPrompt;addRule校验:非空、单条字符上限(默认 300)、总条数上限(默认 50)、相同内容去重ALWAYS_PROTECTED_TOOLS增加"acp_rule"—— 调用+结果默认从压缩范围硬排除(#433 第 1 点「默认保护」)RULES_USAGE_PROMPT提示词片段 +RULE_TOOL_NAME/DEFAULT_RULE_LIMITS常量功能开关(默认关闭)放在各适配器(pi 的 acp.json / billion-context 三级配置);内核不加新 Config 字段,保护无条件生效(功能关闭时不存在 acp_rule 消息,无副作用)。
验证
npm run typecheck通过tests/rules.test.ts10/10 通过(含压缩排除保护集成测试)