Skip to main content

作用

工作区是 HarnessAgent 的”地基”:人格、长期记忆、领域知识、子 agent 声明、会话历史、技能定义统一以目录结构 + Markdown 的形式落地,不再散落在代码里。 agent 每次推理时,工作区里的几个关键文件会被自动注入到 system prompt;运行过程中的记忆与会话也会按既定路径回写到这里。

触发

目录结构

子 agent 三层模型(声明 / 定义 / 运行时)详见 子 Agent

关键逻辑

两层读取 / 写回

WorkspaceManager 是无状态访问器,所有读写都遵循同一规约: 要点:
  • 读路径AbstractFilesystem 优先 → 本地磁盘兜底,让多租户场景对调用方透明
  • 写路径:默认全部走 AbstractFilesystem;未配置时 fallback 本地磁盘
  • List 操作listKnowledgeFiles / listMemoryFilePaths / listSessionLogFiles)取两层并集去重,避免漏文件

system prompt 注入内容

WorkspaceContextHook(priority 900)在 PreReasoningEvent 拼装一段固定结构的文本,合并到第一条 SYSTEM 消息: maxContextTokens 默认 8000(按 chars/4 估算)。当 MEMORY.md 估算超出”剩余预算”时,按字符截断并附 ... (memory truncated — use memory_search for older entries) ... 尾注,提示 agent 改走 memory_search

关键 API

配置

AGENTS.md 缺失时 agent 仍可工作,只会丢失 persona 段,建议至少写一份最小骨架(参考 overview.md 的 quickstart)。

相关文档

  • 架构WorkspaceContextHook 在 call() 生命周期里的位置
  • 文件系统 — 两层读路径中”上层”的实现
  • 记忆MEMORY.md / memory/*.md 怎么生成与维护
  • 会话agents/<agentId>/sessions/ 的细节