Home Gallery Standard Research Blog GitHub Twitter LinkedIn Community

AgenticX system prompt

Category: Multi-agent systems. Audited against the AISPA standard.

What is in AgenticX's system prompt?

AgenticX's full system prompt: 4 versions, 35,064 characters. 1 instruction flagged, worst on privacy & data protection.

The full text of 4 prompts is reproduced below, 35,064 characters in all, each read instruction by instruction against the eight AISPA dimensions. 1 instruction was flagged as working against the person on the other end, most of them on privacy & data protection.

4 Prompts on record
1 Flagged instructions
AI audit Audit source
D3 · Privacy & Data Protection D4 · Tool/Action Safety D5 · User Agency & Manipulation Prevention

AgenticX - .cursor plans agent loop context persistence 44...

12550 characters · 1 flagged

--- name: Agent Loop Context Persistence overview: 补齐 AgenticX agent loop 的上下文持久化能力:TodoWrite 结构化规划、Scratchpad 中间结果暂存、Memory 写入工具、SQLite 跨会话持久化、向量 embedding + FTS 语义记忆检索,完整对标 Claude Agent Loop v2/v3 并融合 OpenClaw 的三层记忆架构。 todos: - id: p0-todo-manager content: "Phase 0: 新建 todo_manager.py + todo_write 工具 + system prompt 注入 + nag reminder" status: completed - id: p0-todo-tests content: "Phase 0: 新建 test_todo_manager.py, 验证约束(max 20, 单个 in_progress, 渲染格式)" status: completed - id: p1-scratchpad content: "Phase 1a: 新建 scratchpad.py + scratchpad_write/read 工具 + system prompt 注入 + subagent 继承" status: completed - id: p1-memory-write content: "Phase 1b: memory_append 工具 + loader.py 公开写入 API + daily/long_term 两种模式" status: completed - id: p1-tests content: "Phase 1: 新建 test_scratchpad.py, 补充 memory_append 集成测试" status: completed - id: p2-session-store content: "Phase 2: 新建 session_store.py(SQLite 3 表)+ session_manager 集成 + 会话结束自动持久化" status: completed - id: p2-tests content: "Phase 2: 新建 test_session_store.py, 验证跨会话恢复" status: completed - id: p3-workspace-memory content: "Phase 3: 新建 workspace_memory.py(chunks + FTS5 + embedding)+ memory_search 工具" status: completed - id: p3-indexing content: "Phase 3: loader.py 增量索引 + memory_append 写后自动索引" status: completed - id: p3-tests content: "Phase 3: 新建 test_workspace_memory.py, 验证 FTS + 语义搜索 + 增量索引" status: completed isProject: false --- # Agent Loop 上下文持久化完整方案 ## 现状诊断 当前 AgenticX agent loop 在三个核心点的支持情况: - **上下文持久化**:仅有 `session.artifacts` / `session.context_files` 隐式传递,缺少 TodoWrite 和 Scratchpad - **程序化工具调用**:已对标 Claude v1(`tool_choice="auto"` + JSON function calling),合格 - **递归调度**:已超越 Claude v3(并行 subagent + 资源监控 + 生命周期管理),合格 **核心差距**:缺少 Claude v2 的 TodoWrite + 缺少 Memory 写入工具 + 缺少 SQLite 持久化层 + 缺少语义记忆检索 ## 架构全景 ```mermaid graph TB subgraph RuntimeTools [Runtime Layer - In-Session] TodoWrite[todo_write Tool] ScratchpadW[scratchpad_write Tool] ScratchpadR[scratchpad_read Tool] MemoryAppend[memory_append Tool] MemorySearch[memory_search Tool] end subgraph SessionState [StudioSession State] TodoMgr[TodoManager] Scratchpad[Scratchpad Dict] Artifacts[artifacts Dict] ContextFiles[context_files Dict] end subgraph Persistence [SQLite Persistence Layer] SessionDB["session_memory.sqlite"] TodoTable[todos Table] ScratchTable[scratchpad Table] SummaryTable[session_summaries Table] end subgraph VectorMemory [Vector Memory Layer] ChunksTable[chunks Table + embedding] FTSIndex[chunks_fts FTS5 Index] EmbeddingService[Embedding Service] end subgraph WorkspaceFiles [Workspace Markdown Files] MemoryMD[MEMORY.md] DailyMD["memory/YYYY-MM-DD.md"] IdentityMD[IDENTITY.md / USER.md / SOUL.md] end TodoWrite --> TodoMgr ScratchpadW --> Scratchpad ScratchpadR --> Scratchpad MemoryAppend --> DailyMD MemoryAppend --> MemoryMD MemorySearch --> FTSIndex MemorySearch --> ChunksTable TodoMgr -->|"session end"| TodoTable Scratchpad -->|"session end"| ScratchTable DailyMD -->|"indexing"| EmbeddingService MemoryMD -->|"indexing"| EmbeddingService EmbeddingService --> ChunksTable EmbeddingService --> FTSIndex ``` ## Phase 0: TodoWrite 工具(对标 Claude v2) **目标**:让模型的"计划"外化为可见、可追踪的状态机 ### 新建 `agenticx/runtime/todo_manager.py` ```python class TodoManager: items: List[TodoItem] # max 20 items # TodoItem: {content: str, status: str, active_form: str} # status: "pending" | "in_progress" | "completed" # active_form: 现在进行时描述,如 "正在分析认证模块..." def update(self, items: list) -> str: # 验证 + 渲染 def render(self) -> str: # 文本渲染给模型看 ``` **设计决策**:新建轻量 TodoManager 而非复用 `plan_storage.py` 的 SubTask/Plan,原因: - `SubTask` 要求 `expected_outcome` 等字段,对 agent loop 内的快速规划过重 - Claude v2 的 TodoManager 刻意极简(content + status + activeForm),约束即能力 - `plan_storage` 面向长期项目规划,TodoManager 面向单次对话内的任务追踪 - 后续 Phase 2 会增加 SQLite 持久化桥接 ### 修改 `agenticx/cli/agent_tools.py` - 在 `STUDIO_TOOLS` 中新增 `todo_write` 工具定义 - 在 `dispatch_tool_async` 中新增 `todo_write` 分发逻辑 ### 修改 `agenticx/cli/studio.py` - `StudioSession` 新增 `todo_manager: TodoManager` 字段 ### 修改 `agenticx/runtime/agent_runtime.py` - `_build_agent_system_prompt()` 注入当前 todo 列表状态 - 增加 nag reminder 机制:连续 N 轮未更新 todo 时注入 `<reminder>` 到 user message ### 修改 `agenticx/runtime/prompts/meta_agent.py` - `build_meta_agent_system_prompt()` 注入 todo 状态 - 调度策略中增加 "拆解子任务前先用 `todo_write` 记录计划" 的指导 ## Phase 1: Scratchpad + Memory 写入工具 ### 1a. Scratchpad(会话内中间结果暂存) **新建 `agenticx/runtime/scratchpad.py`** ```python class Scratchpad: _store: Dict[str, str] # key -> value, max 50 keys, max 10KB per value def write(self, key: str, value: str) -> str def read(self, key: str) -> str def list_keys(self) -> List[str] def render_summary(self) -> str # 给 system prompt 用的摘要 ``` **修改 `agenticx/cli/agent_tools.py`** - 新增 `scratchpad_write` 工具:写入 key-value - 新增 `scratchpad_read` 工具:读取指定 key 或 list keys **修改 `agenticx/cli/studio.py`** - `StudioSession` 新增 `scratchpad: Scratchpad` 字段 **修改 `agenticx/runtime/agent_runtime.py`** - System prompt 注入 scratchpad 摘要(key 列表 + 每个 value 的前 200 字符预览) **修改 `agenticx/runtime/team_manager.py`** - `_build_isolated_session()` 时将 parent session 的 scratchpad 复制一份给 subagent(只读快照) ### 1b. Memory 写入工具 **修改 `agenticx/workspace/loader.py`** - 将 `_append_daily_memory_note()` 改为 public `append_daily_memory(workspace_dir, note)` - 新增 `append_long_term_memory(workspace_dir, note)` — 追加到 MEMORY.md **修改 `agenticx/cli/agent_tools.py`** - 新增 `memory_append` 工具: - 参数:`target` ("daily" | "long_term"),`content` (str) - daily: 追加到 `memory/YYYY-MM-DD.md` - long_term: 追加到 `MEMORY.md`(需要 confirm) ## Phase 2: SQLite 持久化层 **目标**:跨会话恢复 todo/scratchpad/session summary,类似 OpenClaw 的 `main.sqlite` ### 新建 `agenticx/memory/session_store.py` ```python class SessionStore: """SQLite persistence for session state across conversations.""" def __init__(self, db_path: Path): # 默认 ~/.agenticx/memory/sessions.sqlite # Todo 持久化 async def save_todos(self, session_id: str, items: list) -> None async def load_todos(self, session_id: str) -> list # Scratchpad 持久化 async def save_scratchpad(self, session_id: str, data: dict) -> None async def load_scratchpad(self, session_id: str) -> dict # Session summary 持久化(会话结束时自动摘要) async def save_session_summary(self, session_id: str, summary: str, metadata: dict) -> None async def search_session_summaries(self, query: str, limit: int = 5) -> list ``` **Schema 设计(3 张表)** ```sql CREATE TABLE todos ( session_id TEXT NOT NULL, data TEXT NOT NULL, -- JSON array of todo items updated_at TEXT NOT NULL, PRIMARY KEY (session_id) ); CREATE TABLE scratchpad ( session_id TEXT NOT NULL, key TEXT NOT NULL, value TEXT NOT NULL, updated_at TEXT NOT NULL, PRIMARY KEY (session_id, key) ); CREATE TABLE session_summaries ( id TEXT PRIMARY KEY, session_id TEXT NOT NULL, summary TEXT NOT NULL, metadata TEXT, -- JSON: provider, model, duration, tool_count created_at TEXT NOT NULL ); ``` ### 修改 `agenticx/studio/session_manager.py` - `ManagedSession` 创建时加载 SQLite 中的 todo/scratchpad - Session 销毁时自动保存 todo/scratchpad + 生成 session summary ### 修改 `agenticx/workspace/loader.py` - `ensure_workspace()` 中初始化 `~/.agenticx/memory/` 目录和 SQLite 文件 ## Phase 3: 向量 Embedding + FTS 语义记忆检索 **目标**:对标 OpenClaw 的 `main.sqlite`(chunks + FTS5 + embedding_cache),让 agent 能语义检索历史记忆 ### 新建 `agenticx/memory/workspace_memory.py` ```python class WorkspaceMemoryStore: """SQLite + FTS5 + Embedding for workspace markdown memory files.""" def __init__(self, db_path: Path, embedding_provider: str = "default"): # 默认 ~/.agenticx/memory/main.sqlite async def index_file(self, file_path: Path) -> int: # 读取 markdown -> 分块 -> embedding -> 存入 chunks + FTS async def index_workspace(self, workspace_dir: Path) -> dict: # 索引 MEMORY.md + memory/*.md + IDENTITY.md + USER.md async def search(self, query: str, limit: int = 5, mode: str = "hybrid") -> list: # mode: "fts" (纯全文) | "semantic" (纯向量) | "hybrid" (混合) async def get_recent_memories(self, days: int = 7, limit: int = 10) -> list: # 按时间获取最近记忆 ``` **Schema 设计(对标 OpenClaw)** ```sql CREATE TABLE files ( path TEXT PRIMARY KEY, hash TEXT NOT NULL, mtime REAL NOT NULL, size INTEGER NOT NULL ); CREATE TABLE chunks ( id TEXT PRIMARY KEY, path TEXT NOT NULL, source TEXT, start_line INTEGER, end_line INTEGER, model TEXT, text TEXT NOT NULL, embedding BLOB, created_at TEXT NOT NULL ); CREATE VIRTUAL TABLE chunks_fts USING fts5(text, content=chunks, content_rowid=rowid); CREATE TABLE embedding_cache ( provider TEXT NOT NULL, model TEXT NOT NULL, hash TEXT NOT NULL, embedding BLOB NOT NULL, PRIMARY KEY (provider, model, hash) ); ``` ### Embedding 服务 复用 `agenticx/integrations/mem0/embeddings/` 已有的 embedding provider(OpenAI/Ollama/HuggingFace 等),通过 `ProviderResolver` 或配置文件选择。 ### 修改 `agenticx/cli/agent_tools.py` - 新增 `memory_search` 工具: - 参数:`query` (str),`mode` ("fts" | "semantic" | "hybrid"),`limit` (int) - 返回匹配的记忆片段 + 来源文件 + 相关度 ### 修改 `agenticx/runtime/meta_tools.py` - Meta-Agent 工具列表新增 `memory_search` ### 索引触发时机 - `ensure_workspace()` 时检查文件 hash,增量索引变更的 markdown 文件 - `memory_append` 写入后自动增量索引新内容 - 可选:配置定时全量重索引 ### 修改 `agenticx/workspace/loader.py` - `ensure_workspace()` 新增可选的 `index_memory=True` 参数 - 调用 `WorkspaceMemoryStore.index_workspace()` 进行增量索引 ## 关键文件清单 | 操作 | 文件 | Phase | | --- | -------------------------------------------------------------------------------- | ----- | | 新建 | `agenticx/runtime/todo_manager.py` | P0 | | 新建 | `agenticx/runtime/scratchpad.py` | P1 | | 新建 | `agenticx/memory/session_store.py` | P2 | | 新建 | `agenticx/memory/workspace_memory.py` | P3 | | 新建 | `tests/test_todo_manager.py` | P0 | | 新建 | `tests/test_scratchpad.py` | P1 | | 新建 | `tests/test_session_store.py` | P2 | | 新建 | `tests/test_workspace_memory.py` | P3 | | 修改 | [agenticx/cli/agent_tools.py](agenticx/cli/agent_tools.py) | P0-P3 | | 修改 | [agenticx/cli/studio.py](agenticx/cli/studio.py) | P0-P1 | | 修改 | [agenticx/runtime/agent_runtime.py](agenticx/runtime/agent_runtime.py) | P0-P1 | | 修改 | [agenticx/runtime/prompts/meta_agent.py](agenticx/runtime/prompts/meta_agent.py) | P0 | | 修改 | [agenticx/runtime/team_manager.py](agenticx/runtime/team_manager.py) | P1 | | 修改 | [agenticx/runtime/meta_tools.py](agenticx/runtime/meta_tools.py) | P3 | | 修改 | [agenticx/workspace/loader.py](agenticx/workspace/loader.py) | P1-P3 | | 修改 | [agenticx/studio/session_manager.py](agenticx/studio/session_manager.py) | P2 | ## 与 OpenClaw 三层记忆架构的对齐 | OpenClaw 层 | AgenticX 对应 | Phase | | ----------------------------- | ----------------------------------- | ----- | | `MEMORY.md` 长期精选 | `memory_append(target="long_term")` | P1 | | `memory/YYYY-MM-DD.md` 每日日志 | `memory_append(target="daily")` | P1 | | `sessions/` 会话历史 | `session_summaries` in SQLite | P2 | | `main.sqlite` chunks + FTS5 | `WorkspaceMemoryStore` | P3 | | `main.sqlite` embedding_cache | 复用 mem0 embeddings | P3 | ## 约束与风险 - **Phase 0-1 无新依赖**:纯 Python 标准库 + 已有 agenticx 基础 - **Phase 2 依赖 `aiosqlite`**:已在 `plan_storage.py` 中使用,非新增 - **Phase 3 依赖 embedding provider**:需要用户配置 API key 或本地模型;FTS5 不依赖 embedding,可独立使用 - **向后兼容**:所有新工具为 opt-in,不影响现有 STUDIO_TOOLS 和 META_AGENT_TOOLS 的行为

Instructions flagged against the user

D3 · Privacy & Data Protection
“Session 销毁时自动保存 todo/scratchpad + 生成 session summary”
The system prompt describes extensive data persistence mechanisms (SQLite storage, session summaries, scratchpad persistence, memory indexing, embedding caches) but includes no mention of user consent, data retention policies, transparency about what is stored, or user control over their data. The memory_append tool writes to persistent files and databases without any described consent mechanism. Session data is automatically persisted at session end without user awareness or control. The workspace memory system indexes and stores user interactions with no privacy safeguards mentioned.

AgenticX - .cursor plans agent runtime unification 235a295...

7740 characters

--- name: Agent Runtime Unification overview: 将 Agent Loop 从 CLI studio.py 中抽象为独立的 AgentRuntime 内核,输出标准化事件流,同时服务 CLI 终端和桌面端(FastAPI + Electron)。 todos: [] isProject: true phases: - name: "Phase 0: Agent Loop 收口(p2-streaming + commit)" todos: - id: p0-streaming content: agent_loop.py 纯文本分支改为流式输出:无 tool_calls 时使用 llm.stream() 逐 token 打印,保持 tool_call 分支不变(仍用 invoke);更新 test_agent_loop.py 验证流式路径 status: pending - id: p0-commit content: "按功能点分组提交 Agent Loop 改造的全部变更,每个 commit 带 Plan-Id: studio_agent_loop_改造_428be5da / Plan-File / Made-with: Damon Li" status: pending - name: "Phase 1: AgentRuntime 内核抽象" todos: - id: p1-events content: "新建 agenticx/runtime/events.py:定义 RuntimeEvent dataclass(type: str, data: dict)和 EventType 枚举(ROUND_START / TOOL_CALL / TOOL_RESULT / CONFIRM_REQUIRED / CONFIRM_RESPONSE / TOKEN / FINAL / ERROR)" status: pending - id: p1-confirm-gate content: 新建 agenticx/runtime/confirm.py:定义 ConfirmGate 抽象基类(async def request_confirm(question, context) -> bool)+ SyncConfirmGate(CLI 用 input())+ AsyncConfirmGate(桌面端用 asyncio.Event 等待 HTTP 回复) status: pending - id: p1-runtime-core content: 新建 agenticx/runtime/agent_runtime.py:AgentRuntime 类,核心方法 async def run_turn(user_input, session) -> AsyncGenerator[RuntimeEvent];内部复用 STUDIO_TOOLS + dispatch_tool + _build_agent_system_prompt;确认操作走 ConfirmGate;token 输出走 RuntimeEvent(TOKEN);最大轮次走 RuntimeEvent(ERROR) status: pending - id: p1-tools-refactor content: 重构 agent_tools.py:将 _confirm() 和 console.print 替换为通过 ConfirmGate 回调 + 返回结构化结果;dispatch_tool 新增 confirm_gate 参数;保持现有测试兼容(SyncConfirmGate 作为默认) status: pending - id: p1-tests content: tests/test_agent_runtime.py:mock LLM + mock ConfirmGate,验证事件流完整性(ROUND_START → TOOL_CALL → CONFIRM_REQUIRED → TOOL_RESULT → FINAL)、最大轮次终止、纯文本路径产出 TOKEN 事件 status: pending - name: "Phase 2: CLI Adapter 切换" todos: - id: p2-cli-adapter content: 重构 agent_loop.py 的 run_agent_loop:改为 AgentRuntime 的同步包装,内部 asyncio.run(runtime.run_turn(...)),消费事件流:TOKEN→print、TOOL_CALL→显示工具名、CONFIRM_REQUIRED→input()、FINAL→返回文本 status: pending - id: p2-studio-adapt content: studio.py 主循环适配:保持 / 命令不变,非 / 输入走新的 run_agent_loop(内部已切换到 Runtime);验证 /undo、/history、/ctx、@ref 等全部兼容 status: pending - id: p2-trace-cmd content: studio.py 新增 /trace 命令:打印最近一次 agent loop 的完整事件流(tool decisions + confirm + results),方便开发者调试 status: pending - id: p2-regression content: 运行全量测试(test_agent_tools + test_agent_loop + test_cli_studio),确保 29+ tests 全部通过;补充 /trace 命令的基础测试 status: pending - name: "Phase 3: Service Adapter(FastAPI 服务化)" todos: - id: p3-protocols content: 新建 agenticx/studio/protocols.py:定义 API 请求/响应模型(ChatRequest、ConfirmResponse、SessionState)和 SSE 事件格式,参考桌面版 plan 的 WebSocket API 设计 status: pending - id: p3-session-mgr content: 新建 agenticx/studio/session_manager.py:多会话管理(create/get/delete session),每个 session 持有独立 StudioSession + AgentRuntime 实例,支持超时清理 status: pending - id: p3-server content: 新建 agenticx/studio/server.py:FastAPI 应用,核心端点:POST /api/chat(SSE 流式返回 RuntimeEvent)、POST /api/confirm(回复确认)、GET /api/session(会话状态)、GET /api/artifacts(产物列表)、DELETE /api/session(重置) status: pending - id: p3-server-tests content: tests/test_studio_server.py:使用 httpx + FastAPI TestClient,验证 SSE 事件流、确认闸门流程、会话生命周期;mock LLM 避免真实调用 status: pending - id: p3-cli-entry content: agx serve 命令:在 agenticx/cli/main.py 新增 serve 子命令,启动 FastAPI 服务(uvicorn),支持 --port --host 参数 status: pending - name: "Phase 4: Desktop MVP(Electron + React 脚手架)" todos: - id: p4-scaffold content: desktop/ 目录:Electron + React + TypeScript 项目脚手架(electron-builder + Vite),含 main.ts(主进程)+ App.tsx(渲染进程)+ 基础打包配置 status: pending - id: p4-floating-ball content: FloatingBall 组件:全局置顶、可拖拽、状态指示(idle/listening/processing)、右键菜单(设置/侧边栏/退出),参考桌面版 plan 4.1.1 设计 status: pending - id: p4-sidebar content: Sidebar 组件:对话气泡(用户/助手/工具调用)、确认弹窗(ConfirmDialog)、代码预览面板、输入框(文本),通过 SSE 连接 agx serve 获取事件流 status: pending - id: p4-tray content: 系统托盘集成:菜单项(打开侧边栏/设置/退出)、状态图标切换 status: pending - id: p4-e2e content: Desktop 端到端验证:启动 agx serve → 打开 Electron → 输入自然语言 → 看到事件流 → 确认工具调用 → 查看产物 status: pending - name: "Phase 5: 语音层与体验增强(后续)" todos: - id: p5-stt content: 集成 STT(Web Speech API / Whisper):悬浮球点击→录音→转文字→发送到 /api/chat status: pending - id: p5-tts content: 集成 TTS(Edge TTS / Web Speech API):FINAL 事件 → 语音播报,支持情感化语气(参考桌面版 plan 4.2.3) status: pending - id: p5-wakeword content: 唤醒词监听(Picovoice / 自定义):Hey Jarvis → 唤醒 → 开始录音 status: pending - id: p5-interrupt content: 语音打断:TTS 播放中检测用户说话 → 停止播放 → 切入新一轮对话 status: pending --- # Agent Runtime 统一化 ## 战略定位 ``` AgentRuntime(核心内核) ┌────────────┴────────────┐ ▼ ▼ CLI Adapter Service Adapter (agx studio) (FastAPI + SSE) typed REPL │ ▼ Desktop UI (Electron) voice + floating ball ``` **核心原则**:Runtime 是唯一的"大脑",CLI 和 Desktop 只是不同的"嘴和手"。 ## 已有基础(Agent Loop 改造已完成) - `agenticx/cli/agent_tools.py`:11 个工具 + dispatch_tool + 安全机制 - `agenticx/cli/agent_loop.py`:run_agent_loop + system prompt + 历史管理 - `agenticx/cli/studio.py`:REPL 主循环 + / 命令 + 会话状态 - 安全:shell=False、workspace 边界、diff 确认、高风险子命令检测 - 测试:29 passed(agent_tools + agent_loop + cli_studio) ## 当前问题(要解决的) - Agent Loop 与 CLI REPL **耦合**:`run_agent_loop` 直接 `console.print`、直接 `input()` - 无法被 HTTP 服务层调用(阻塞 I/O、无事件流) - `_confirm()` 和 `ask_user` 是同步 `input()`,桌面端无法接管 - 工具执行结果直接打印到 stdout,不是结构化事件 ## 关键设计 ### AgentRuntime 事件协议 ```python @dataclass class RuntimeEvent: type: str # "token" | "tool_call" | "tool_result" | "confirm_required" | "final" | "error" | "round_start" data: Dict[str, Any] # 示例事件流: # {"type": "round_start", "data": {"round": 1, "max_rounds": 10}} # {"type": "tool_call", "data": {"name": "bash_exec", "arguments": {...}}} # {"type": "confirm_required", "data": {"id": "xxx", "question": "Write to file?"}} # ... 用户回复 confirm ... # {"type": "tool_result", "data": {"name": "bash_exec", "result": "exit_code=0..."}} # {"type": "token", "data": {"text": "已"}} # {"type": "token", "data": {"text": "完成"}} # {"type": "final", "data": {"text": "已完成文件写入。"}} ``` ### 确认闸门(Confirm Gate) 现有的 `_confirm()`/`ask_user` 改为异步回调: - CLI adapter:同步 `input()` 阻塞 - Service adapter:发 SSE confirm_required 事件,等 HTTP POST 回复 ### 文件清单 - `agenticx/runtime/agent_runtime.py`(新建):AgentRuntime 核心,输出事件流 - `agenticx/runtime/events.py`(新建):RuntimeEvent + EventType 定义 - `agenticx/runtime/confirm.py`(新建):ConfirmGate 抽象 + CLI/Async 实现 - `agenticx/runtime/__init__.py`(新建):导出 - `agenticx/cli/agent_loop.py`(重构):改为调用 AgentRuntime - `agenticx/cli/agent_tools.py`(重构):confirm 回调化 - `agenticx/cli/studio.py`(适配):消费 RuntimeEvent 事件流 - `agenticx/studio/server.py`(新建):FastAPI 服务层 - `agenticx/studio/session_manager.py`(新建):多会话管理 - `agenticx/studio/protocols.py`(新建):API 协议定义 - `desktop/`(新建):Electron + React 前端脚手架 ## 与桌面版 plan 的关系 桌面版 plan(`.cursor/plans/2026-03-08-agenticx-studio-desktop.plan.md`)保留作为 **PRD 参考**: - UI/UX 设计(悬浮球/侧边栏/托盘)→ Phase 4 直接复用 - 语音交互设计 → Phase 5 直接复用 - API 协议草案 → Phase 3 参考并升级 - 技术栈选型 → 沿用(Electron + React + FastAPI + Zustand) - 里程碑节奏 → 吸收但按新架构重排

AgenticX - .cursor plans meta agent team architecture f06c...

9302 characters

--- name: Meta-Agent Team Architecture overview: 将 AgenticX Desktop 从单 Agent 串行模式升级为 Meta-Agent(CEO)+ Agent Team 多智能体协作架构,让主智能体始终可对话、子智能体并行执行、右侧面板实时展示进度。 todos: [] isProject: true phases: - name: "Phase 1: 核心后端 — AgentTeamManager + SubAgent 隔离" todos: - id: p1-events-agent-id content: "修改 `agenticx/runtime/events.py`:`RuntimeEvent` 增加 `agent_id: str = \"meta\"` 字段,确保序列化时始终携带。同步更新 `EventType` 新增 `SUBAGENT_STARTED`, `SUBAGENT_PROGRESS`, `SUBAGENT_COMPLETED`, `SUBAGENT_ERROR` 四个枚举值。" status: pending - id: p1-subagent-context content: 新建 `agenticx/runtime/team_manager.py`:定义 `SubAgentContext` dataclass(agent_id, name, role, task, status, agent_messages, artifacts, context_files, confirm_gate, result_summary, created_at, updated_at);定义 `SubAgentStatus` 枚举(PENDING, RUNNING, COMPLETED, FAILED, CANCELLED)。 status: pending - id: p1-team-manager content: 在 `team_manager.py` 中实现 `AgentTeamManager` 类:spawn_subagent()(创建 SubAgentContext + 启动独立 AgentRuntime asyncio.Task,并发限制 max_concurrent=4)、cancel_subagent()(通过 should_stop 中断)、get_status()(返回所有 sub-agent 状态摘要)、_run_subagent()(内部方法,运行单个 sub-agent 的 run_turn 循环,收集事件并通过回调转发,完成后生成 result_summary)。 status: pending - id: p1-resource-monitor content: 新建 `agenticx/runtime/resource_monitor.py`:`ResourceMonitor` 类,提供 `get_system_stats()` 返回 CPU%、内存%、活跃 sub-agent 数。`can_spawn()` 方法根据阈值判断是否允许新建 sub-agent。 status: pending - id: p1-meta-tools content: 新建 `agenticx/runtime/meta_tools.py`:定义 Meta-Agent 专用工具:`spawn_subagent(name, role, task, tools?)` — 调用 TeamManager 创建子 agent 并返回 agent_id;`cancel_subagent(agent_id)` — 中断指定 sub-agent;`query_subagent_status(agent_id?)` — 查询进度;`check_resources()` — 返回当前资源状况和建议。工具定义遵循 STUDIO_TOOLS 相同的 dict schema。 status: pending - id: p1-runtime-agent-id content: "修改 `agenticx/runtime/agent_runtime.py`:`run_turn` 新增 `agent_id: str = \"meta\"` 参数,所有 yield 的 `RuntimeEvent` 填充此 `agent_id`。不改变现有逻辑,仅传递标识。" status: pending - id: p1-confirm-isolation content: "修改 `agenticx/runtime/confirm.py` 和 `session_manager.py`:支持 per-agent confirm gate。`ManagedSession` 新增 `sub_confirm_gates: Dict[str, AsyncConfirmGate]`,`/api/confirm` 根据 `agent_id` 路由到对应 gate。" status: pending - id: p1-tests-backend content: 新增 `tests/test_team_manager.py`:测试 spawn/cancel/并发限制/资源检查/结果回收。新增 `tests/test_meta_tools.py`:测试三个 meta 工具的调用和返回格式。修改 `tests/test_agent_runtime.py`:验证事件携带 agent_id。 status: pending - name: "Phase 2: Server 层 — SSE 多路合并 + Meta-Agent 会话管理" todos: - id: p2-session-team content: "修改 `agenticx/studio/session_manager.py`:`ManagedSession` 新增 `team_manager: Optional[AgentTeamManager]`(懒初始化)。新增方法 `get_or_create_team()` 返回 `AgentTeamManager` 实例。" status: pending - id: p2-server-multiplex content: 修改 `agenticx/studio/server.py`:`/api/chat` 的 `_event_stream` 支持多路事件合并。Meta-Agent 的 run_turn 事件 + sub-agent 通过 asyncio.Queue 转发的事件统一 yield,每个 SSE data 都含 `agent_id` 字段。 status: pending - id: p2-confirm-route content: 修改 `/api/confirm` 端点:接受新增字段 `agent_id`(默认 `"meta"`),根据 agent_id 找到对应的 confirm_gate 提交确认。 status: pending - id: p2-subagent-events content: 在 server SSE 流中新增 sub-agent 生命周期事件的转发:当 TeamManager 发出 SUBAGENT_STARTED/PROGRESS/COMPLETED/ERROR 时,通过合并 queue 推送给前端。 status: pending - id: p2-meta-system-prompt content: 创建 Meta-Agent 专用 system prompt 模板(可放在 `agenticx/runtime/prompts/meta_agent.py`),包含:角色定义(CEO/调度者)、可用工具说明、任务拆解策略、进度汇报格式、资源感知指令。 status: pending - id: p2-tests-server content: 修改 `tests/test_studio_server.py`:测试 SSE 事件含 agent_id、confirm 路由、多 agent 事件合并。 status: pending - name: "Phase 3: 前端 — 侧边面板 + 多 Agent 消息路由" todos: - id: p3-store-model content: "修改 `desktop/src/store.ts`:Message 新增 `agentId?: string` 字段。新增 `SubAgent` 类型(id, name, role, status, task, progress?, currentAction?)。Store 新增 `subAgents: SubAgent[]`、`selectedSubAgent: string | null`、`addSubAgent`、`updateSubAgent`、`removeSubAgent` 方法。" status: pending - id: p3-chatview-meta-only content: 修改 `desktop/src/components/ChatView.tsx`:只渲染 `agentId === "meta" || agentId === undefined` 的消息。SSE 事件处理按 agent_id 路由:meta 事件更新聊天,sub-agent 事件更新 store 中对应 SubAgent 状态。 status: pending - id: p3-subagent-panel content: 新建 `desktop/src/components/SubAgentPanel.tsx`:右侧可折叠面板(宽 280px~320px,动画展开/折叠),列出所有活跃 sub-agent 卡片。面板顶部有汇总状态(N running / N done / N pending)。 status: pending - id: p3-subagent-card content: 新建 `desktop/src/components/SubAgentCard.tsx`:单个 sub-agent 的进度卡片。显示:名称、角色标签、状态图标(⏳/🔄/✅/❌)、当前动作(如 `正在写 main.py`)、进度条(可选)、[展开详情] 按钮显示最近 tool calls、[中断] 按钮(发 cancel 请求)。展开后显示该 sub-agent 的 tool_call/tool_result 事件列表。 status: pending - id: p3-confirm-multi content: 修改 `desktop/src/components/ConfirmDialog.tsx`:confirm 弹窗增加来源标识(显示是哪个 sub-agent 请求确认)。提交时携带 `agent_id` 到 `/api/confirm`。 status: pending - id: p3-layout-responsive content: 修改 `desktop/src/App.tsx` 或 `ChatView.tsx` 布局:当有活跃 sub-agent 时自动展开右侧面板(flex 布局:左侧聊天区 flex-1,右侧面板固定宽度)。无 sub-agent 时全宽聊天。窗口最小宽度调整为 680px(以容纳面板)。 status: pending - id: p3-tests-frontend content: 验证前端 TypeScript 编译通过(`npm run build`)、无 lint 错误。手动验证侧面板展开/折叠、卡片状态更新、confirm 路由。 status: pending - name: "Phase 4: Meta-Agent 智能调度 + 端到端验证" todos: - id: p4-meta-intelligence content: 完善 Meta-Agent system prompt:引导 LLM 在收到复杂任务时自动拆解、给出 sub-agent 分配建议、在用户问进度时调用 query_subagent_status。加入资源感知指令:spawn 前先 check_resources,根据返回决定并发数。 status: pending - id: p4-result-summary content: 实现 sub-agent 完成后的摘要回传机制:TeamManager._run_subagent() 完成后提取最终回复 + 产出文件列表,压缩为 ≤500 token 摘要,注入 Meta-Agent 的 agent_messages 作为 tool_result。 status: pending - id: p4-error-recovery content: 实现 sub-agent 失败后的恢复策略:TeamManager 捕获 sub-agent 异常,标记 FAILED,将错误摘要回传 Meta-Agent,由 Meta-Agent 决定重试或跳过。 status: pending - id: p4-e2e-test content: 端到端验证:在 Desktop 中发送 `帮我创建一个深度调研助手`,验证:(1) Meta-Agent 拆解任务并 spawn sub-agents (2) 右侧面板显示 sub-agent 进度 (3) 用户在主聊天区问进度得到即时回复 (4) 可中断单个 sub-agent (5) 所有 sub-agent 完成后 Meta-Agent 汇总结果。 status: pending - id: p4-docs content: 更新 `docs/cli.md` 增加 Agent Team 章节。更新 `desktop/README.md` 增加多智能体协作说明。 status: pending --- # Meta-Agent + Agent Team 多智能体协作架构 ## 背景 当前 AgenticX Desktop 是单 Agent 串行执行:一旦进入工具调用循环,Agent 被"绑死"在子任务中,用户无法交互;长程任务 10 轮 tool call 后上下文溢出,任务必然失败。 ## 目标架构 ``` 用户 ↔ Meta-Agent (CEO, 永不阻塞) ↕ AgentTeamManager ┌─────┬─────┬─────┐ │ SA1 │ SA2 │ SA3 │ (独立上下文, 独立 runtime) └─────┴─────┴─────┘ ``` - **Meta-Agent**:只做意图理解、任务拆解、进度汇报、资源调度。自身上下文极轻(只保留决策日志 + 最新 sub-agent 摘要) - **Sub-Agent**:独立 `AgentRuntime` 实例 + 独立上下文窗口 + 独立 confirm gate - **事件流**:所有 `RuntimeEvent` 携带 `agent_id`,前端按 agent 分流渲染 ## 关键设计决策 ### D1: Meta-Agent 不执行工具 Meta-Agent 只有三类工具: - `spawn_subagent(name, role, task, tools?, dependencies?)` - `cancel_subagent(agent_id)` - `query_subagent_status(agent_id?)` 其余 11 个 STUDIO_TOOLS(bash_exec, file_write 等)只分配给 sub-agent。 这保证 Meta-Agent **永不阻塞**,始终可响应用户。 ### D2: Sub-Agent 上下文完全隔离 每个 sub-agent 拥有独立的 `SubAgentContext`: - `agent_messages: list` — 独立对话历史 - `artifacts: dict` — 独立产物记录 - `context_files: dict` — 独立上下文文件 - `confirm_gate: AsyncConfirmGate` — 独立确认门 Sub-agent 完成后,仅将**摘要**(结果 + 产出文件列表)回传 Meta-Agent 上下文。 ### D3: SSE 事件统一加 agent_id `RuntimeEvent` 新增 `agent_id: str` 字段(`"meta"` 代表主 agent)。 前端按 `agent_id` 将事件路由到: - `agent_id == "meta"` → 主聊天区 - 其他 → 右侧面板对应 sub-agent 卡片 ### D4: 资源管控 `AgentTeamManager` 维护并发限制: - `max_concurrent_subagents: int = 4`(可配置) - 启动前检查系统资源(CPU、内存),拒绝或排队 - Meta-Agent 工具返回资源状态,LLM 自行决策 ### D5: SSE vs WebSocket 本阶段继续使用 SSE(多路合并到单 SSE 流,按 agent_id 区分),避免协议切换带来的复杂度。未来可升级 WebSocket。 ## 核心文件变更地图 **新增文件**: - `agenticx/runtime/team_manager.py` — AgentTeamManager, SubAgentContext - `agenticx/runtime/meta_tools.py` — spawn/cancel/query 三个 Meta-Agent 专用工具 - `agenticx/runtime/resource_monitor.py` — 系统资源检测 - `desktop/src/components/SubAgentPanel.tsx` — 右侧子智能体面板 - `desktop/src/components/SubAgentCard.tsx` — 单个子智能体卡片 **大改文件**: - `agenticx/runtime/agent_runtime.py` — run_turn 支持 agent_id 传递 - `agenticx/studio/session_manager.py` — ManagedSession 支持多 runtime - `agenticx/studio/server.py` — SSE 事件带 agent_id, 多路合并 - `desktop/src/store.ts` — Message 增加 agentId, 新增 subAgents state - `desktop/src/components/ChatView.tsx` — 只渲染 meta agent 消息, 侧边面板联动 **中改文件**: - `agenticx/runtime/events.py` — RuntimeEvent 增加 agent_id - `agenticx/runtime/confirm.py` — per-agent confirm gate - `agenticx/cli/agent_tools.py` — 工具注册区分 meta vs sub ## 风险与对策 - **并发安全**:sub-agent 完全隔离 context,通过 `TeamManager.report_result()` 串行回写 meta context - **Confirm 冲突**:每个 sub-agent 独立 `AsyncConfirmGate`,前端根据 `agent_id` 路由确认弹窗 - **资源过载**:`max_concurrent_subagents` 硬限制 + 资源检测软限制 - **上下文膨胀**:sub-agent 结果只回传摘要(≤500 tokens),不回传完整 messages - **MCP 并发**:MCP hub 维持共享但加异步锁 ## 验证策略 - 单元测试:`TeamManager` 的 spawn/cancel/并发/资源限制 - 集成测试:Meta-Agent 通过 tool call 启动 sub-agent 并收集结果 - 前端测试:multi-agent 事件流渲染 + 侧面板更新 - 端到端:在 Desktop 中对话触发多 sub-agent 任务,验证进度可见 + 可中断 + 可交互

AgenticX - .cursor plans studio agent loop 改造 428be5da.plan

5472 characters

--- name: Studio Agent Loop 改造 overview: 将 agx studio 从"固定路由 REPL"升级为"LLM Agent Loop + Tool Calling"架构,让 LLM 自主选择工具(bash、file_edit、codegen、mcp_call、skill_use、ask_user 等),同时兼容现有 / 命令快捷方式。这是 CLI 和桌面版的共同底座。 todos: [] isProject: true phases: - name: "Phase 1: Tool 定义与注册" todos: - id: p1-tool-schema content: 新建 `agenticx/cli/agent_tools.py`:定义 STUDIO_TOOLS 列表(OpenAI function calling JSON Schema 格式),包含 bash_exec、file_read、file_write、file_edit、codegen、mcp_connect、mcp_call、skill_use、skill_list、ask_user、list_files 共 11 个工具 status: pending - id: p1-tool-impl content: agent_tools.py 中实现每个工具的执行函数:bash_exec 用 subprocess.run(白名单检查)、file_read 用 Path.read_text(行号范围)、file_write 用 Path.write_text(显示 diff 确认)、file_edit 用字符串替换(显示 diff)、codegen 调用 CodeGenEngine、mcp_connect/mcp_call 调用 studio_mcp、skill_use/skill_list 调用 studio_skill、ask_user 用 input() 阻塞等待、list_files 用 os.listdir + glob status: pending - id: p1-dispatcher content: agent_tools.py 中实现 `dispatch_tool(name, arguments, session) -> str` 统一分发器,根据 tool name 路由到对应函数,返回字符串结果 status: pending - id: p1-safety content: bash_exec 安全机制:定义 SAFE_COMMANDS 白名单(ls/cat/head/tail/grep/find/wc/python/pip/git/echo/pwd/which/tree),非白名单命令自动调用 ask_user 确认;file_write/file_edit 写入前显示 diff 并确认 status: pending - name: "Phase 2: Agent Loop 引擎" todos: - id: p2-loop-core content: 新建 `agenticx/cli/agent_loop.py`:实现 `run_agent_loop(session, llm, user_input) -> str` 核心函数。构建 system prompt(元 Skills + artifacts + context_files + MCP tools),调用 llm.invoke(messages, tools=STUDIO_TOOLS, tool_choice='auto'),解析 response 中的 tool_calls,执行工具,将结果回注 messages,循环直到 LLM 返回纯文本或达到最大轮次 status: pending - id: p2-system-prompt content: agent_loop.py 中实现 `_build_agent_system_prompt(session)` :注入角色定义、元 Skills 摘要、当前 artifacts、context_files、MCP 工具信息、行为准则(中文回复、关键操作确认、安全约束) status: pending - id: p2-streaming content: Agent Loop 纯文本输出时使用流式输出(复用现有的 print(chunk) 逻辑);tool_call 执行时显示 spinner 或状态提示 status: pending - id: p2-history content: Agent Loop 每轮的 messages(含 tool_calls + tool results)存入 session.chat_history,保持多轮对话连贯性 status: pending - id: p2-max-turns content: 最大循环轮次限制(默认 MAX_TOOL_ROUNDS=10),超过时提示用户并停止 status: pending - name: "Phase 3: Studio 主循环改造" todos: - id: p3-integrate content: studio.py 主循环改造:保留所有 / 命令快捷路由(/mcp、/skill、/ctx、/show、/run、/save、/undo、/image、/history、/config、/discover、/exit);删除 IntentClassifier 路由逻辑,非 / 输入全部走 run_agent_loop(session, llm, user_input);删除 _chat_reply 函数(Agent Loop 替代) status: pending - id: p3-session-update content: "StudioSession 新增 `agent_messages: List[Dict]` 字段,存储 Agent Loop 的完整 messages 历史(含 tool_calls),替代现有的 chat_history(仅存 role/content 对)" status: pending - id: p3-welcome content: 更新欢迎语:「直接用自然语言描述你想做什么,或输入 shell 命令。」 status: pending - name: "Phase 4: 文档与测试" todos: - id: p4-docs content: docs/cli.md 更新 Studio 章节:说明 Agent Loop 架构、工具列表、安全机制、典型用法示例(自然语言 + shell 命令 + 混合场景) status: pending - id: p4-tests content: tests/test_agent_tools.py 和 tests/test_agent_loop.py:mock LLM 和工具,验证 tool dispatch、安全白名单、循环终止、流式输出 status: pending - id: p4-commit content: 按功能点分组提交,所有 commit 带 Plan-Id trailer status: pending --- # Studio Agent Loop 改造 ## 架构对比 **现有架构(固定路由)**: ``` 用户输入 → IntentClassifier(规则+LLM) → CHAT/GENERATE/MODIFY → 固定处理器 ``` **目标架构(Agent Loop)**: ``` 用户输入 → / 命令快捷路由(保留) → 非 / 开头 → Agent Loop: system prompt(元Skills+上下文+工具定义) + user message → LLM(tool_choice="auto") → tool_call? → 执行工具 → 结果回注 → 继续循环 → 纯文本? → 流式输出 → 结束 ``` ## 关键设计决策 ### 1. / 命令保留为"快捷方式" `/mcp`、`/skill`、`/ctx`、`/show`、`/run` 等保持不变,作为 power user 的快捷入口。 非 / 开头的输入全部进入 Agent Loop。 ### 2. Tool 定义(JSON Schema for function calling) 每个工具对应一个 Python 函数 + JSON Schema 定义。LLM 通过 `tools` 参数看到所有工具。 **核心工具集**: - `bash_exec(command)` — 在当前目录执行 shell 命令,返回 stdout/stderr - `file_read(path, start_line?, end_line?)` — 读取文件内容 - `file_write(path, content)` — 写入/覆盖文件 - `file_edit(path, old_text, new_text)` — 精确替换文件片段(类似 CC 的 apply diff) - `codegen(target, description)` — 调用 CodeGenEngine 生成 agent/workflow/tool/skill - `mcp_connect(server_name)` — 连接 MCP server - `mcp_call(tool_name, arguments)` — 调用 MCP 工具 - `skill_use(name)` — 激活 skill 到上下文 - `skill_list()` — 列出可用 skills - `ask_user(question)` — 暂停执行,向用户提问,等待回答 - `list_files(directory?, pattern?)` — 列出目录内容(安全版 ls) ### 3. 安全边界 - `bash_exec`:默认白名单(ls, cat, head, tail, grep, find, wc, python, pip, git status/log/diff) - 非白名单命令需用户确认(通过 ask_user) - `file_write`/`file_edit` 写入前显示 diff,需确认 - 最大循环轮次限制(防止死循环),默认 10 轮 ### 4. 与现有代码的关系 - `IntentClassifier`:**保留但弱化**,仅作为 Agent Loop 内部的一个 fallback - `CodeGenEngine`:**保留**,作为 `codegen` 工具的底层实现 - `studio_mcp.py`:**保留**,`mcp_connect/mcp_call` 工具的底层实现 - `studio_skill.py`:**保留**,`skill_use/skill_list` 工具的底层实现 - `_chat_reply()`:**替换**为 Agent Loop 的文本输出路径 ## 改动文件清单 - `agenticx/cli/agent_tools.py`(新建):定义所有 Studio Tool 函数 + JSON Schema - `agenticx/cli/agent_loop.py`(新建):Agent Loop 核心引擎(system prompt 构建、tool dispatch、循环控制) - `agenticx/cli/studio.py`(修改):主循环中非 / 输入走 agent_loop,替代 IntentClassifier + 固定路由 - `agenticx/cli/codegen_engine.py`(微调):作为 codegen tool 的底层,无重大改动 - `docs/cli.md`(更新):Agent Loop 使用说明

Questions about AgenticX's system prompt

Does AgenticX's system prompt contain instructions that work against the user?

Yes. 1 instruction in AgenticX's system prompt was flagged as working against the person the product is talking to, most of them under privacy & data protection. Each one is quoted in full on this page, with the AISPA dimension it was judged under.

How long is AgenticX's system prompt?

35,064 characters across 4 prompts on this page. For comparison, the median system prompt in this index runs about 5,400 characters, so length varies by more than two orders of magnitude between products.

How many versions of AgenticX's system prompt are on record?

4. Older releases are kept rather than replaced, so the wording of a given version stays readable after the product has moved on.

Where did this AgenticX system prompt come from?

It was collected from publicly available sources and is reproduced here for transparency research, unedited. This site does not extract prompts from products itself.

How was AgenticX's system prompt audited?

Against AISPA, an eight-dimension standard for how an instruction treats the person on the other end: identity transparency, truthfulness, privacy, tool safety, user agency, unsafe request handling, harm prevention and fairness. This audit was ai audit. The method is described in the paper behind the standard.

How this page was made

The prompt text above is reproduced verbatim from a public source. Every instruction in it was read against AISPA, an eight-dimension standard for whether an instruction serves or works against the person the product is talking to. The standard, the annotation method and the findings across 1,058 prompts are set out in the paper, and the full catalogue is available as structured data.

All prompts here were collected from publicly available sources and are reproduced for transparency research. Browse the multi-agent systems category, the full gallery of 400+ products, or read the paper behind the AISPA standard.