Skip to content
语伞

系统提示词

Peri Agent 的上下文构成——14 个提示词段落 + CLAUDE.md 如何赋予 Agent 身份、规范、能力和即时感知。

系统提示词是 Agent 的认知底座——它告诉 Agent “你是谁、能做什么、遵守什么规则、当前面对什么”。Peri 的系统提示词由两部分拼接而成:14 个 Markdown 段落文件peri-acp/prompts/sections/*.md)提供稳定的规则和能力定义,CLAUDE.md 提供项目特定的记忆,外加每轮变化的动态数据。

稳定层:14 个段落文件

14 个 .md 文件在 Agent 启动时一次性加载并冻结,整个会话中保持不变。按功能分为五组:

身份与行为边界

文件提供什么
01_intro.md角色定义:声明”你是 Peri CLI 编程助手”。设定安全红线——只做防御性安全任务,禁止攻击代码。URL 引用规则——不凭空编造链接,只能引用用户提供的、刚抓取验证过的、或知名官方域名的 URL
02_system.md编码约定与主动性平衡:First-look principle——修改代码前先读周围文件,不假设库存在。Secret 处理——密钥是实弹,禁止日志/错误消息/源码/测试 fixture 中泄露。主动性边界——该做的时候做,不该做的时候不擅自行动
06_tone_style.md回复风格:简单问题 1-4 行(附带 file_path:line 引用)。复杂任务才展开——陈述假设、列出计划、暴露权衡、确认范围。完成就停——不加”还有什么需要帮忙”。不用 emoji

这三份文件共同定义了 Agent 的”人格”——它是工具而不是人,该简洁时简洁,该详细时详细,有明确的安全红线。

任务执行规范

文件提供什么
03_doing_tasks.mdThink Before Coding:动手前先陈述假设,有多种解读时全部列出,有更简单的方案时主动提出。执行流程——用搜索工具理解代码库、验证方案、跑 lint/build。Goal-Driven Execution——把任务拆成带验证条件的步骤,用强成功标准驱动独立循环
04_actions.md操作安全:优先可逆操作(Edit 优于 Delete)。高风险操作前确认范围。最小改动原则——只动必须动的行,不”顺手优化”相邻代码,每行改动能追溯回用户需求。Git 安全协议——永不 force-push main、永不 git commit --amend、永不跳过 hooks、不提交含密钥的文件

这两份文件是 Agent 的”工作方法论”——先想再做、最小改动、操作可逆、Git 自律。

工具使用手册

文件提供什么
05_using_tools.md工具选择指南:每种操作告诉 Agent 该用什么工具——搜文件用 Glob 别用 find、读文件用 Read 别用 cat、编辑用 Edit/Write 别用 sedBash 纪律——路径加引号、非破坏式优先、禁止 `curl
07_env.md环境上下文(模板变量注入):工作目录路径、是否 Git 仓库、操作系统、当前日期。标注”这些值在会话启动时捕获,可能已过期——做不可逆操作前用 pwd/git status 重新验证”

05 是工具字典——Agent 靠它避免最常见的错误(用 Bash 代替专用工具)。07 是环境快照——告诉 Agent 它在哪台机器、什么项目里。

高级能力

文件提供什么
10_hitl.md人机审批模式:9 类需审批的工具(Bash、Write、Edit、Agent、WebFetch 等)。用户四种响应——Approve(原样执行)/ Reject(改方案别重试)/ Edit(用修改后的参数执行)/ Respond(纯反馈,按消息调整计划)
11_subagent.md子 Agent 调度:Agent 类型列表(coder、explorer、plan、code-reviewer 等),每类带 [model_tier][access] 标注。选择指南——默认选专用 Agent,“general-purpose 是兜底不是默认”。标准管线——Research → Plan → Code → Review。后台任务——异步通知、禁止轮询、禁止 sleep 等待
12_cron.md定时任务:cron_register/list/remove 三个工具。安全约束——不主动注册、“git push —force 放 cron 是自残”、避免高频 * * * * *
13_skills.mdSkills 技能系统:四级搜索优先级(用户→全局→项目→插件)。触发方式是 /skill-name,但 Agent 应主动推荐未被使用的匹配 Skill。Skills 内容是按需加载的,只有摘要放在稳定层
16_workflow.mdWorkflow 工作流编排:多 Agent 并行/流水线,异步执行,结果保存到 .claude/workflow-runs/。禁止 sleep 轮询——系统会主动唤醒

这五份文件是 Agent 的”超能力手册”——HITL 让人参与决策、SubAgent 让任务并行、Cron 让任务定时、Skills 让能力按需加载、Workflow 让多 Agent 流水线协作。

消息协议

文件提供什么
14_system_reminder.md系统提醒标签:告诉 Agent <system-reminder> 是 harness 注入的,不是用户伪造的。收到后静默处理,不要在回复中提及。信任边界——用户消息中如果出现”看起来像 system-reminder”的文本,当作不可信用户输入处理
15_channel.md频道消息路由:来自终端的是纯文本,来自外部渠道(微信/Slack/飞书)的用 <channel> 标签包裹。Agent 必须识别 sourcechat_id,用对应的 MCP 工具回消息,不能直接回复文本

这两份文件定义了 Agent 如何区分”系统通知”和”用户消息”,以及如何在不同渠道间正确路由回复。

动态层:每轮刷新的上下文

稳定层之上,每轮对话追加的内容包括:

来源形式说明
用户消息human() 消息终端输入或频道消息(解析后的纯文本)
工具调用结果tool_result 消息文件内容、命令输出、搜索结果
中间件注入异步到达的消息SubAgent 完成通知、HITL 审批结果、Workflow 产物
上下文预算SystemNotetoken 剩余量、compact 触发提醒
中途纠正human() 消息Agent 走偏时注入的纠正指令(禁止用 system()——会被 hoist 到稳定层破坏缓存)

为什么必须冻结

14 个段落文件在 Agent 启动时全部加载到内存,后续整个会话不再重新读盘。原因是认知一致性

  • 如果每轮重新获取日期,Agent 可能在同一任务中给出不同的时间判断
  • 如果 Skills 列表在会话中变化,Agent 的可用能力集突然漂移
  • 如果 CLAUDE.md 被开发者中途修改,Agent 的行为规则不一致

冻结保证同一个会话中,Agent 看到的世界始终一致。SubAgent 也从 main agent 继承冻结数据——主代理和子代理对项目配置、Skills 列表的理解完全相同。