首页 / 资讯中心 / 文章详情

Feynman 会话日志(/log)工作流:面向科研 Agent 的持久化 Session Log 编写指南

Feynman 会话日志(/log)工作流:面向科研 Agent 的持久化 Session Log 编写指南 ★ FEATURED ARTICLE
Feynman 会话日志/log工作流面向科研 Agent 的持久化 Session Log 编写指南【免费下载链接】feynmanThe open source AI research agent.项目地址: https://gitcode.com/gh_mirrors/feynman/feynman本指南以仓库 prompts/log.md 中的/log会话日志提示词为骨架结合 skills/session-log/SKILL.md、extensions/research-tools/project.ts 与 extensions/research-tools/project-scaffold.ts 的实现系统讲解 Feynman 中会话日志的触发方式、编写要求、工具纪律与落盘规范。读完你将掌握如何为一段科研工作产出结构完整、可追溯、按日期归档的会话日志以及它如何与项目脚手架、AGENTS.md 形成闭环。一、什么是 Feynman 的会话日志Feynman 是面向开放科学研究的 AI Agent。在多轮、多日、多分支的科研任务中Agent 的上下文窗口会被不断覆盖跨会话的记忆必须落在磁盘上而非上下文中。会话日志Session Log正是这一“外部记忆”的核心载体它在每个有意义的工作阶段结束时把已完成的工作、最强发现或决策、未解决问题与下一步计划固化为一篇 Markdown 文档。在仓库中这一能力由三部分组成prompts/log.md/log斜杠命令展开的工作流提示词定义日志的内容要求与工具纪律skills/session-log/SKILL.md同名技能描述“何时使用”并指定输出目录notes/session-logs/extensions/research-tools/project.ts 与 extensions/research-tools/project-scaffold.tsinit命令负责创建notes/session-logs/目录、README.md以及内含「Session Logging」章节的AGENTS.md模板。三者共同构成了一个约定每个有意义的会话结束时调用/log在notes/session-logs/下写入一篇日期命名的持久化记录。这与 prompts/summarize.md 等文档遵循同一套提示词工程规范——以description、section、topLevelCli为 frontmatter 元数据供命令行系统解析注册。二、触发与前置Tool Discipline工具纪律/log提示词的开篇是「Tool Discipline (Read First)」——任何使用该工作流的 Agent 都必须先遵守一套字面化的工具命名约束。它的核心思想是工具名是字面值只能调用当前工具集中可见的工具禁止按记忆中的别名或过时名称发起调用。关键规则可归纳为以下几点场景允许的规范调用禁止的变体搜索web_searchsearch_web、google_search、google:search、search_google、WebSearch抓取 URLfetch_content多地址用urls参数裸fetch、WebFetch、read_url_content、把数组当url传Feynman 专属工具可见的alpha_search等shell 访问用feynman alpha ...用户全局的裸alpha二进制提问直接写普通聊天文本等待下一条用户消息ask_user_question、ask_user、ask_followup_question、user_choice子代理调度仅当存在可见的subagent工具时使用把Task当 agent 分发器失败重试映射到规范工具并修正参数或记录该能力被阻塞对返回Tool not found/Invalid URL的同一无效调用重试设计意图很明确科研 Agent 在多模型、多版本、多插件环境下运行工具的规范名称会漂移例如某版本升级后fetch_content取代了WebFetch。字面化约束把“名称漂移”从隐性错误变成显式规则防止 Agent 一遍遍重试一个无效调用而浪费上下文与时间。这是整套 Feynman 提示词包括 prompts/log.md、prompts/summarize.md 等共用的前导模板属于项目级的提示词工程基础设施。三、日志内容要求五要素完成工具纪律检查后提示词要求为当前研究工作编写一份会话日志核心要求可拆解为五个要素总结本次会话完成的工作Summarize what was done in this session——按时间或按任务线列出实际完成的步骤避免只写结论不写过程记录最强的发现或决策Capture the strongest findings or decisions——一个会话可能产生很多噪音日志应聚焦最有信息量的结论包括“为什么这样做”的决策依据列出未解决问题、未消解风险与具体下一步List open questions, unresolved risks, and concrete next steps——这一步让后续会话能无缝接力而不是重新探索引用写入notes/、outputs/、experiments/或papers/的重要工件Reference any important artifacts——日志不重复存储工件内容而是给出路径引用形成“日志是索引、工件是本体”的结构对外部关键论断附上原始来源 URLIf any external claims matter, include direct source URLs——保证任何引用的外部事实可核验。这五要素与项目脚手架的 AGENTS.md 模板一脉相承extensions/research-tools/project-scaffold.ts 中的模板要求“在notes/、outputs/、experiments/、papers/中优先落盘持久化工件Prefer durable artifacts”“重要论断保持来源可溯最终成稿包含直接 URLKeep strong claims source-grounded”。也就是说会话日志不是孤立的记录而是 AGENTS.md 中「Project Overview / Current Status / Task Ledger / Verification Gates / Honesty Contract」等章节的运行时更新机制每次/log都是把项目状态持久化的一个检查点。四、落盘规范notes/ 目录与日期文件名日志的落盘位置有明确约定提示词要求保存为 Markdown使用面向日期的文件名date-oriented filename例如2026-09-23.mdskills/session-log/SKILL.md 将输出目录精确到notes/session-logs/这一目录结构由init命令自动搭建。从 extensions/research-tools/project.ts 第 69-102 行可以看到init命令的完整实现它会创建notes/与notes/session-logs/两个目录在项目根写入AGENTS.md若不存在在notes/session-logs/写入README.md若不存在最后通过 UI 通知用户实际创建/跳过了哪些文件。命令的注册描述为Initialize AGENTS.md and session-log folders for a research project在 metadata/commands.mjs 的命令清单中对应init条目Bootstrap AGENTS.md and session-log folders for a research project.。初始化后的典型项目结构如下project-root/ ├── AGENTS.md # 由 init 生成含 Session Logging 章节 └── notes/ └── session-logs/ ├── README.md # 由 init 生成说明 /log 的使用方式 ├── 2026-09-22.md # 每个有意义的会话一篇 └── 2026-09-23.md日期文件名保证日志按时间自然排序、可回溯、不互相覆盖——这正是一个科研项目跨多天、多会话运行时的最小可行档案方案。另外值得注意notes/session-logs/属于notes/工件区而 prompts/summarize.md 的 RLM 流程使用outputs/.notes/作为临时窗口缓存目录两者职责不同——session-logs存放人工可读的持久记录.notes存放机器处理的中间产物不要混淆。五、与项目脚手架的闭环AGENTS.md → /logextensions/research-tools/project-scaffold.ts 生成的 AGENTS.md 模板中包含专门的「Session Logging」章节## Session Logging - Use /log at the end of meaningful sessions to write a durable session note into notes/session-logs/.同时buildSessionLogsReadme()生成的notes/session-logs/README.md也说明每个有意义的会话应使用/log写入一条持久记录。这意味着整个工作流是一个闭环初始化项目创建时运行init或在 metadata/commands.mjs 的命令清单中可见生成AGENTS.md与notes/session-logs/运行期Agent 每次启动读取AGENTS.md获得项目记忆与「Session Logging」指令会话结束Agent 调用/log展开 prompts/log.md 的完整工作流按五要素撰写日志并落盘到notes/session-logs/的日期文件接力下一次会话通过AGENTS.md与日志目录恢复上下文未解决问题与下一步直接来自上一篇日志的对应小节。从 skills/session-log/SKILL.md 还能看到一个实现细节Run the/logworkflow. The slash command expands the full workflow instructions in the active session; do not try to read a relative prompt-template path from the installed skill directory.——技能文件不复制提示词正文而是引用斜杠命令展开。这样提示词更新后技能自动同步避免技能目录与prompts/目录的模板内容分叉。六、编写一份高质量会话日志的实践建议结合提示词要求与项目约定一份可直接复用的会话日志模板如下# Session Log — 2026-09-23 ## Done - [x] 抓取并解析 arXiv 文献写入 outputs/.notes/attention-is-all-you-need-raw.txt - [x] 完成 Tier 3 分块汇总产出 outputs/attention-is-all-you-need-summary.md ## Key Findings / Decisions - 选用 --window-size 6000 --overlap 500 参数跨块边界论断在两块内完整出现依据见 prompts/summarize.md 的 RLM 说明 - 决定跳过某数据库因其当前 API 返回速率限制证据调用返回 429 ## Open Questions / Risks - 该综述的基线对比是否覆盖最新 SOTA待 /lit 补充 - outputs/slug-summary.md 的 Coverage gaps 记录了 chunk-007 缺失需回查 ## Artifacts - notes/session-logs/2026-09-23.md本篇 - outputs/attention-is-all-you-need-summary.md - experiments/...如有 ## Sources - 外部论断对应的原始 URL如有实践要点文件名用日期与notes/session-logs/目录约定一致便于排序与检索发现与决策分开写发现是事实陈述决策要带上“为什么”否则后续会话无法判断该决策是否仍有效未解决问题要可执行写明具体风险与下一步动作让下一篇日志能直接承接工件用相对路径引用日志只做索引内容留在工件文件里外部来源必附 URL符合 AGENTS.md「Keep strong claims source-grounded」的诚实契约。七、小结Feynman 的会话日志工作流/log解决的是科研 Agent 最现实的工程问题跨会话的记忆连续性。它以 prompts/log.md 的提示词为执行规范五要素内容要求 字面化工具纪律以notes/session-logs/为持久化落盘区日期文件名以init命令与 extensions/research-tools/project-scaffold.ts 的AGENTS.md模板为自动化的项目级约定。三者叠加使得“每次有意义会话结束时留下可追溯、可接力、可核验的记录”成为项目默认行为——这也是开放科学对可复现性的最低要求不止结论可复现探索过程本身也可复现。【免费下载链接】feynmanThe open source AI research agent.项目地址: https://gitcode.com/gh_mirrors/feynman/feynman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站