![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
87940da51a
|
feat(prompt): 重新注册 bash,把"不要用 bash 搜索"写进工具描述
真实会话里模型仍习惯性先调 bash grep,被拒后才改用 grep 工具;系统提示词里已有 4 处
提醒,但模型下调用决定时看的是工具 schema 描述,而 Pi 内置 bash 描述对此只字未提。
- 新增 extensions/bash-override.ts:用 Pi 的 createBashToolDefinition 重新注册 bash,
执行、输出结构与 codemode 说明完全沿用上游;shellPath/commandPrefix 按 ctx.cwd
经 SettingsManager 惰性解析,与内置一致
- tools.jsonc 新增 descriptionAppend 字段,由 prompt-guard 注册时拼接到上游描述后
- bash 增加命令→工具对照规则(grep -n / grep -rl / find -name),并提示
文件清单用 $(git ls-files) 传参、不要接 xargs(会触发权限审核)
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-22 01:20:52 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
dae1a01f23
|
feat(prompt): 搜索引导改为意图→工具的正向指引,multi_grep 按上游保持关闭
真实会话中模型仍用 bash grep -o | sort -u 做抽取,被拒后直接放弃核对;
原提示词只说"不要",没告诉它抽取/计数、给程序传文件清单、过滤命令输出时该用什么。
- routing:按已知信息选 grep/find(多变体用 grep 正则 alternation),
codemode + tools.grep 做聚合,bash 文件清单用 git ls-files,
overflow_query 过滤输出,被拒后改用替代方案继续
- 权限策略:rg/grep/git grep/find/fd 的 deny 附带指向替代工具的 reason
- tools.jsonc:grep/find 新 snippet,补上 codegraph_explore snippet
- FFF 上游标注 multi_grep 有害:wrapper 删除 PI_FFF_MULTIGREP,清理全部引用
- JSONC 测试改用字符串感知的注释剥离(reason 中含 'src/**/*.ts')
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-22 00:14:49 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
f9a7f743dd
|
feat: 接入 Pi 内置 codemode,并修复全面审查发现的问题
- codemode:Tool Search 常驻(alwaysEnabled)、权限 allow(嵌套调用仍逐个过权限门)、
tools.jsonc 登记使用规则;RTK 跳过 parentToolCallId 嵌套调用,避免丢失 bash
structuredContent;Tool Search 目录过滤 hidden / codemode(script-only)exposure;
扩展加载测试加载 builtin:codemode 并断言其常驻激活
- 搜索 key 不再经命令行参数传递:search-auth.mjs 改为 --set-stdin(先读校验再加锁),
configure.sh 交互输入经管道、非交互用 --<provider> -
- CodeGraph 客户端监听子进程 stdin error,避免 EPIPE 未处理导致崩溃
- 移除 PI_TOOL_SEARCH/HERMES_MEMORY/RTK_CONFIG_PATH 环境变量入口,测试改用工厂 configPath 注入
- pi-subagents 固定 vitest / coverage-istanbul 4.1.10,修复 npm ls 版本冲突
- 补 pi-web-search / pi-worktree UPSTREAM.md 与 pi-minimal-footer AGENTS.md,
files 白名单补齐并加测试;.codegraph/.gitignore 移出跟踪
- detect_kitty 优先识别官方安装目录
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-21 23:18:34 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
56cbc83296
|
refactor: 移除 context-mode,Chrome 快照改为直接返回
context-mode 的 ctx_execute 系工具以真实 shell 执行且权限为 allow,绕过了
bash 策略与 protectedWrites;其每轮注入、独立 MCP 子进程与 skills 也与组合包
提示词单一所有权冲突。大输出职责已由 pi-overflow(入口截断)与
pi-compaction(压力遮蔽)承担:
- 删除 context-mode 依赖、wrapper/过滤器、skills,以及 ctx_* 的权限、
tools.jsonc、路由规则、tool-search 常驻与 4 个分组
- better-sqlite3@12 仅为 context-mode 传递依赖,随之移除根 allowScripts
- pi-chrome:按用户决定移除快照隐私规则与 .pi/chrome-context 临时文件机制,
快照 JSON 直接作为工具结果返回、details 只留小型元数据,超长由 pi-overflow
截断并用 overflow_query 提取;授权生命周期不变
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-21 20:45:33 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2a6bf8c929
|
feat(pi-overflow): 新增统一的新工具结果展示截断扩展
此前截断分散在多层且互相冲突:Pi bash 保留尾部 50KB,RTK 兜底截断又只留
开头 12000 字符(砍掉报错与完整输出路径),pi-chrome 截开头 30K,web_fetch
各 provider 不一致。新扩展统一负责"新结果给模型看多少":
- capture.ts 最先加载暂存原文,index.ts 最后加载(system-prompt 之前)
- 超过 24K 字符时原文落盘 <agentDir>/my-pi/pi-overflow/(700/600、原子写),
优先取 bash fullOutputPath 完整文件;模型看到 头 + 中段信号行 + 尾 的有界
视图,行号基于落盘原文、结尾永远可见
- overflow_query:按 id 正则搜索、行区间、jsonPath 只读查询,id 校验防穿越
- 收编:RTK truncate 默认关闭、删除 pi-chrome truncateText、web_fetch 默认
每页 20000(上限 100000)、web_search max_results 限定 1–20
- pi-compaction 遮蔽带 details.overflow.id 的结果时在占位符提示 overflow_query
- 登记 tools.jsonc / routing / 权限 allow / tool-search 常驻与分组
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-21 20:25:44 -07:00 |
|
![Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 云服务部-叶林立andDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
ba164896d2
|
feat: 系统提示词改为单一入口统一管理
多个扩展各自整段改写系统提示词并按加载顺序接力,任一扩展定死提示词后
其余只能做字符串手术,且各上游的工具说明与组合包实际工具格局冲突。
- 新增 extensions/system-prompt.ts 作为唯一出口(加载列表最后),按
config/prompt/(preamble.md、tools.jsonc、routing.jsonc、sections.jsonc)
组合开场白、工具简介/规则与 <tool_routing> 分区;替代原封面与
tool-routing 扩展,/dump-system-prompt 输出最终提示词。
- pi-chrome、pi-ssh、pi-hermes-memory 改为写命名分区,pi-rtk-optimizer
改写 promptGuidelines,pi-permission-system 直接过滤结构化 skills,
均不再返回 systemPrompt;pi-chrome 未授权时不再每轮冻结提示词。
- 新增 prompt-guard 代理加载第三方扩展(Hashline、FFF、LSP、
context-mode):拦截直接改写提示词并按目录覆盖工具说明;context-mode
去掉与组合包路由冲突的锚点段,保留记忆与恢复快照。
- 消除冲突:bash 简介不再建议 grep/find;Hashline edit 不再称可用 grep
锚点、不再介绍已关闭的 replace_text;context-mode 读写/网页路由提示。
- 守门测试:工具目录覆盖率、禁用用法检查、context-mode 上游原文锁定;
AGENTS.md 新增「系统提示词单一所有权」。
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-20 17:53:04 -07:00 |
|