Skip to content

feat(acp): support configuring global system instructions for all agents - #1060

Open
ana52070 wants to merge 2 commits into
spacering-net:mainfrom
ana52070:feat/acp-system-prompts
Open

ana52070 wants to merge 2 commits into
spacering-net:mainfrom
ana52070:feat/acp-system-prompts

Conversation

@ana52070

@ana52070 ana52070 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

现有问题

Codeg 支持了多种 ACP 智能体(如 Claude Code、Gemini、Codex、OpenCode、Pi、Cline、CodeBuddy 等内置 Agent 及自定义 Agent)。不同 Agent 会各自在其全局配置目录中读取指令文件(如 CLAUDE.md、GEMINI.md 或 AGENTS.md)作为全局系统级提示词。

目前在 Codeg 的 Agent 设置面板中:

  • 仅支持配置环境变量(Env)与基础连接配置(config.json 等),无法在界面中直观查看和配置各 Agent 的全局指令/系统提示词。
  • 用户若想为特定 Agent 注入全局角色设定、行为原则或规范要求,必须手动去操作系统文件系统中各 Agent 隐藏的配置路径,割裂感强且不同 Agent 的指令文件名与存储路径各异(如 Claude 使用 CLAUDE.md、Gemini 使用 GEMINI.md、OpenCode/Pi/CodeBuddy 等使用 AGENTS.md),用户心智负担较大。

改动

  1. 后端支持各 Agent 全局提示词文件读取与持久化:

    • 在 AcpAgentInfo 中增加 system_instructions_file_path 与 system_instructions_content。
    • 实现各 Agent 全局指令文件路径映射规则:
      • Claude Code:~/.claude/CLAUDE.md
      • Gemini & Antigravity:~/.gemini/GEMINI.md
      • OpenCode:<opencode_config_dir>/AGENTS.md(默认 ~/.config/opencode/AGENTS.md)
      • Codex:~/.codex/AGENTS.md
      • CodeBuddy:~/.codebuddy/AGENTS.md
      • 其它内置 Agent(Pi、Cline、Hermes、Grok、Cursor、DeepSeek、Qoder、Kiro、Trae、CommandCode、ZCode、MiniMaxCode、KimiCode、OpenClaw 等):均映射到各自配置目录下的 AGENTS.md
      • 自定义 Agent(Custom):优先使用 declared skills 路径或 ~/.<custom_id>/AGENTS.md
    • Agent 列表加载时自动读取现有文件内容;在保存配置时支持原子持久化写入,并自动创建所需父级目录。
  2. 前端设置界面(Agent Settings)集成:

    • 在每个 Agent 设置面板的「环境变量」下方新增「系统级提示词」卡片。
    • 顶部清晰显示当前 Agent 对应的全局文件真实绝对路径。
    • 提供 Markdown 多行编辑器并展示默认提示文案,支持单独点击「保存系统级提示词」或在底部统一保存配置时同步提交。
    • 补齐中英文双语 i18n 翻译及保存成功/失败反馈。

界面与效果展示

1. 设置面板中查看与编辑系统提示词

在 Agent 设置中直接展示当前 Agent 的提示词文件路径与内容编辑器,并提供保存功能:

设置面板体现系统提示词

2. OpenCode 系统提示词生效实测

设置规则后,OpenCode 在会话对话中成功识别并遵循系统提示词指令:

OpenCode 提示词生效对话

3. Pi 系统提示词生效实测

设置规则后,Pi Agent 同样能够准确读取全局指令并生效:

Pi 提示词生效对话

4. CodeBuddy 系统提示词生效实测

设置规则后,CodeBuddy 成功读取 ~/.codebuddy/AGENTS.md 并遵从指令:

CodeBuddy 提示词生效对话

测试

  • 后端测试:
    • 新增 test_agent_system_instructions_paths 单元测试,覆盖所有内置 Agent 与自定义 Agent 的路径规则断言,cargo test 运行通过。
    • cargo check --no-default-features --features server-bin --bin codeg-server 与桌面端 cargo check 均无编译报错。
  • 前端测试:
    • 新增 acp-agent-settings.system-instructions.test.tsx 单元测试,覆盖路径展示、内容加载与保存交互。
    • 运行 pnpm vitest run src/components/settings/acp-agent-settings,20 个测试套件、244 个用例全部通过。
    • pnpm tsc --noEmit 类型检查通过。
  • 端到端实测:
    • 已手动通过本地桌面程序对 Claude Code、OpenCode、Pi、CodeBuddy 进行端到端会话验证,验证各 Agent 会话能正常读取并遵循修改后的提示词。

@ana52070
ana52070 force-pushed the feat/acp-system-prompts branch from 2b46032 to 0822b3e Compare October 29, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant