知识库 / Agent / 未知

一个自然语言文本驱动�自动化管�--Hermes Agent的技术事�整�

原创 认知拓扑 机构:数观微澜(南京)科技有限公司
摘要

摘� 一个具备事务性�久化能力的自然语言文本驱动�自动化管�。它以�盘文件作为共亅

摘�

一个具备事务性�久化能力的自然语言文本驱动�自动化管�。它以�盘文件作为共享黑�的载体,以外部 LLM 作为唯一的“读写�制器�,将所有认知负担(记忆���任务规划�技能�炼�自我认知)通过 Prompt �载给外部 API,自身仅�留字符串标记解�和进程级 I/O 调度功能。

配图
配图

一�是什么

Hermes Agent 是一组 Python 脚本,其功能是�制 LLM API 的调用�程和数�在本地文件系统中的读写。

1. 一个对�循�编�器

conversation_loop.

pyå®�ç�°äº†â€œæ�¥æ”¶è¾“入→æ�„建 Prompt→调用 LLM→解æ��输出→分å�‘工具调用→循ç�¯â€�的标准 ReAct 模å¼�。外部代ç �检测 LLM 输出中的特定标记(如 <TOOL_CALL>),æ�®æ­¤è°ƒç”¨å¯¹åº”çš„ Python 函数。

2. 一个文本文件读写系统

记忆存储在 MEMORY.mdå’Œ USER.md,为纯文本文件。对è¯�å�†å�²å­˜å‚¨åœ¨ SQLite æ•°æ�®åº“中,å�¯ç”¨ FTS5 关键è¯�检索。

技能存储在 SKILL.md,为自然语言æ��述的步骤文档。系统在å�¯åŠ¨æ—¶è¯»å�–这些文件,将其内容拼æ�¥åˆ°ç³»ç»Ÿæ��示è¯�中。

写入管�:当记忆写入超�时,系统返�当��目,由 LLM 自行决策替��删除或�并。

3. 一个自动化文档生��水线

学习循�(Tracker → Evaluator → Reflector → Crystallizer → 存储)是一个由 Python 脚本驱动的�程:

Evaluator 为�件判断(工具调用次数≥5 且任务�功)

Reflector 和 Crystallizer 调用 LLM 生�文本(��内容和技能文档)

输出结æ�œä¸º SKILL.md文件

4. 一个工具注册���机制

工具定义采用 Schema–Registry–Handler 三层分离。æ¯�个工具文件调用 registry.

register()完�自注册,系统�动时通过 AST 扫�自动��包�注册调用的模�。

5. 一个 LLM 的上下文拼�器

系统在�次调用 LLM 之�,将记忆文件�技能文件�对����工具定义等文本内容拼�为系统�示�和用户消�。

6. 一个具有“休眠-唤醒�机制的��进程

gateway/run.

py为长期�行的进程。当无任务时,系统定期调用 LLM(如� 30 秒)询问“是�有任何需�主动处�的事情�。该机制使得系统在无用户输入时�会消费 Token 进行��状���。

7. 一个“无内存�行时���

�次 LLM 调用完��,当�的对����工具调用记录被立��列化写入 SQLite 并�交事务(commit()),��进程返�等待。系统在任何时刻被强制终止都�会丢失已完�的步骤。系统�维护�行时的“短期动����,所有跨步骤的“上下文�贯性�完全�赖下一次 Prompt �建时��盘�新读�和拼�。

二��是什么

1. �是一个独立的��引�

系统本身�包���模�。��和决策由外部 LLM 完�。系统的工作是将 LLM 的输入输出格�化并转�。

2. �是一个认知��

系统未��任何公认的认知��模�(如 ACT-R�SOAR�CLARION�全局工作空间�论等)。其“记忆�是工程存储分层,而�认知科学�义上的“工作记忆→长期记忆�转�结�。

3. �是一个知识图谱

记忆检索基� FTS5 关键�匹�,而�语义相似度。系统没有定义知识�体之间的关系拓扑,也没有��嵌入。工程的����是:预设 LLM 上下文窗�足够大(≥64k),用 FTS5 快速��大�候选片段�全部�入 Prompt,让 LLM 在超长上下文中自行筛选。

4. �是一个模�训练或微调工具

技能优化(DSPy/GEPA)调整的是输入给 LLM 的�示�文本中的��和示例顺�,�涉� LLM 模���的修改。

5. �是一个具有独立状�演化的动力系统

系统状�在没有外部输入时����。状�转移由用户输入�定时触�器或 Webhook 等外部事件驱动,而�由内部状�方程决定。“休眠-唤醒�机制虽能在无输入时触� LLM 调用,但调用的内容由预设文本决定,系统本身�产生新的状�分支。

6. �是一个决策优化系统

系统�定义效用函数��失函数或�本函数。�一步调用哪个工具或生�哪段文本,由 LLM 的概�输出决定。Evaluator 的判断��为硬性阈值,而���斯决策准则。

7. �是一个内生约�系统

系统没有定义独立� LLM 的约���锚定或验� LLM 的输出。所谓“记忆策展�是将写入失败的决策交给�一个 LLM 处�。

8. 没有在代�层�固化“自我�

系统的“身份â€�ç”± prompt_builder在æ¯�次循ç�¯æ—¶åЍæ€�拼æ�¥çš„ System Prompt 文本所赋予。修改 USER.

md或系统�示�模�,系统的“自我认知�会立�改�,无需��或�新训练。

9. 知识真值的验�委托给 LLM 的文本判断

Evaluator 判断“任务是å�¦æˆ�功â€�时,并ä¸�具备外部ç�¯å¢ƒçжæ€�的直æ�¥æ„ŸçŸ¥èƒ½åŠ›ã€‚å…¶åˆ¤æ–­ä¾�æ�®æ˜¯ LLM 对执行结æ�œæ—¥å¿—的文本ç�†è§£ï¼Œæˆ–工具返å›�çš„ exit_code。系统没有通过确定性逻辑(如å�•元测试)æ�¥è¯�æ˜�技能的有效性。

10. 工具执行��过沙箱隔离

core/registry/中的 execute_tool函数直æ�¥ä½¿ç”¨ Python çš„ subprocess或动æ€�导入执行注册的函数。系统å�‡è®¾è¿�行ç�¯å¢ƒå�¯ä¿¡ï¼Œä¸”工具代ç �本身无æ�¶æ„�。系统赋予 LLM 的工具调用能力,其æ�ƒé™�边界等äº�è¿�行该 Python 进程的æ“�作系统用户æ�ƒé™�,未在系统层é�¢å®�æ–½é¢�外的能力管æ�§ã€‚

11. 学习过程存在先验信��耗

Reflector生æˆ�å��æ€�文本时,ä¸�ç›´æ�¥è�·å�–å�Ÿå§‹ç”¨æˆ·è¾“入和å�Ÿå§‹è¾“出的完整语义,而是读å�– Tracker截å�–的最å�� N æ�¡å·¥å…·è°ƒç”¨æ‘˜è¦�。如æ�œä¸€æ¬¡é•¿ä»»åŠ¡æ¶‰å�Šè¶…过上下文窗å�£çš„中间步骤,早期上下文会被截断。沉淀为 SKILL.

md的知识是基�“执行轨迹缩略图�生�的,而�基�“完整任务全景图�。

三�组件�技术��对照

组件

公开�述

��中的对应��

跨会�记忆

�久记忆系统,�“数字大脑�

MEMORY.md

(2200字符)和 USER.md(1375字符)两个文本文件;SQLite + FTS5 关键è¯�检索

自我进化

��验中学习,越用越��

五阶段�水线:Python 追踪执行 → �件判断 → LLM 生���文本 → LLM 生�技能文档 → 存入�盘

技能�用

将�功�验沉淀为��用的能力

SKILL.md

自然语言步骤文档,�动时拼�到系统�示�中

技能优化

�续优化技能质�

DSPy/GEPA 调整 SKILL.md中的æ�ªè¾�ã€�示例顺åº�和模æ�¿ç»“æ�„

工具集�

70+ 内置工具,�动�扩展

Schema–Registry–Handler 三层分离;AST 扫�自动��注册模�;工具执行��沙箱

自主决策

AI 驱动��和行动

ReAct 循�:�建 Prompt → 调用 LLM → 解�输出 → 分�工具调用

主动认知

智能体具有主动性

网关层的“休眠-唤醒�Heartbeat 机制,定期调用 LLM 询问��状�

系统��

智能体框�

一组 Python 脚本(conversation_loop.py�core/memory/�core/learning/�core/registry/等)

状��久化

—

�次 LLM 调用完��立��列化写入 SQLite 并�交事务;无�行时内存状�

四��公开宣传的对照

公开宣传中的表述

技术事�

“�久记忆系统��“策展�记忆��“知识沉淀�

记忆存储为纯文本文件(.md)。检索方�为关键�匹�(FTS5)。写入超�时由 LLM 自行决策��。

“AI 决策�����“智能体自主行动�

系统�执行��。所有决策由外部 LLM 的概�输出完�。系统负责拼� Prompt 和解�字符串标记。

“自我进化��“��验中学习��“越用越���

学习循�是 Python 脚本驱动的�水线。LLM ��文本生�(���技能文档)。输出为 .

md 文件。Reflector 的输入是截断�的执行摘�,�完整任务全景。

“行为优化��“效����

优化对象是输入给 LLM 的�示�文本(���示例顺�)。�改�模�自身能力。

“数字大脑��“智能体框��

系统未��任何公认的认知��。核心是 ReAct 循�的 Python ��。“自我�由 System Prompt 动�定义,未固化�代�。

“主动智能�

存在定时触�的 LLM 调用机制,但调用内容由预设文本决定,�产生新的状�分支。

五�技术画�

Hermes Agent 在工程底层等价�以下�作�列:

将当�状�(对��记忆�工具返�)�列化为文本 → 调用外部黑盒(LLM)生�下一组动作指令的文本 → 解�文本并执行对应函数 → 将执行结��次�列化为文本写入�盘。

综�所有技术事�,�进一步精炼为:

一个具备事务性�久化能力的文本驱动�自动化管�。它以�盘文件作为共享黑�的载体,以外部 LLM 作为唯一的“读写�制器�,将所有认知负担(记忆���任务规划�技能�炼�自我认知)通过 Prompt �载给外部 API,自身仅�留字符串标记解�和进程级 I/O 调度功能。

六�补充

1. 对应 二.11

Reflector 的输入是 Tracker 截å�–的最å�� N æ�¡å·¥å…·è°ƒç”¨æ‘˜è¦�,而é��完整对è¯�日志。Crystallizer 基äº�摘è¦�生æˆ� SKILL.md。

系统未定义任何机制æ�¥è®¡ç®—å�Ÿå§‹å¯¹è¯�日志ä¸� SKILL.

md之间的信�熵差异或互信��留�。��始日志到技能文档的转�是一个有��缩过程,但其�耗未被�化。

2. 对应 二.7

记忆写入超�时,系统�执行确定性删除逻辑,而是将决策�交还给 LLM。prompt_builder.

py动��建 System Prompt,其中的规则由 LLM 在对�中决策是�修改。

系统缺少独立äº� LLM 的外部å�‚考输入(如事å®�校验器ã€�状æ€�验è¯�器)æ�¥æ��供负å��馈信å�·ã€‚Evaluator 的判定ä¾�æ�®ä¸º LLM 对日志的文本ç�†è§£æˆ– exit_code。

3. 对应 二.2

conversation_loop.py的�层循�中,LLM 在�一上下文中�时承担任务执行�自我评判�规则制定三�身份。prompt_builder.

py将所有内容�入�一 Prompt,无结�化分层。

系统没有定义“元认知层��监�“认知层�的独立模�。任何监�行为都需� LLM 在�一个上下文窗�中自行完�。

4. 对应 二.2�二.8

MEMORY.mdå’Œ SKILL.

md是��文本文件,仅在�建 Prompt 时被读�并拼�为文本。这些文本�作为系统��的一部分被内化——没有对应的数�结��状���或�制�逻辑。

系统没有定义任何认知图��动�更新对世界的�解。所有“更新�表�为文本替�。

5. 对应 二.6

工具选择的决策路径为:æ�„建包å�«å·¥å…·å®šä¹‰çš„ Prompt → 调用 LLM → è§£æ�� LLM 输出的 <TOOL_CALL>标记。路径选择由 LLM 的概ç�‡é‡‡æ ·å†³å®šã€‚

系统无期望效用计算,无折�因�,无�险�好�数。Evaluator 的判定��为硬性阈值(工具调用次数≥5 且任务�功),�进行��斯�验概�更新。

6. 对应 二.5�一.7

系统状�在没有外部输入时����。�一次用户输入或定时心跳都是对系统的外部冲击,状�转移由这些事件驱动,而�由内部状�方程决定。

系统没有定义在时间轴上è¿�续演化的状æ€�å�˜é‡�。昨天的 SKILL.md和今天的 SKILL.

md之间�存在动力学�续性约�。系统状��以在无外部�功的情况下�生��。

7. 对应 二.11�一.2�一.3

系统维��熵结�(�炼技能)的唯一手段是调用 LLM 生�文本。LLM 的采样过程本身是一个引入�机性的过程。技能�炼的输出基�截断摘�,而�完整任务信�。

系统��确定性校验�境输出“废热�(�通过确定性逻辑验�并固化的事�)。�一次记忆�写和技能生�都在消耗 API 能�,但系统没有将任何结�固化为���的结�。技能文档�以在�续被�次�写。

8. 负�馈�自指递归的区别

在�制论中,负�馈�求系统有一个独立�被�对象的�考输入,通过感知输出��考值的�差�修正行为。

本系统的逻辑是:让被�对象(LLM)自己�修改�制器(System Prompt)的规则�数。这�是负�馈,而是自指递归。系统缺少独立� LLM 的�考输入��供负�馈信�。

七�技术事�汇总

系统是一组 Python 脚本,管� LLM API 调用和本地文件读写。

记忆存储为纯文本文件(.md)和 SQLite 数�库(FTS5 关键�检索)。

技能存储为自然语言 Markdown 文档,�用时拼�到系统�示�。

学习循�是 Python 脚本驱动的�水线,LLM ��两个文本生��节(���技能文档)。

技能优化调整的是输入给 LLM 的�示�文本,�改�模��数。

系统�包�独立� LLM 的��模��决策优化模�或内生约�模�。

核心引�(对�循�)是 ReAct 模�的标准��。

工具��采用 AST ��扫�自动化注册。

工具执行��沙箱隔离,��边界等��作系统用户��。

系统未��任何公认的认知��模�。

系统的“自我认知�由 System Prompt 动�定义,未固化�代�。

知识真值的验�委托给 LLM 对日志文本的�解,而�确定性逻辑。

学习循�的 Reflector 阶段输入为截断�的执行摘�,存在先验信��耗。

系统存在“休眠-唤醒�的定时 LLM 调用机制,但调用内容由预设文本决定。

检索策略为“FTS5 �� + 超长上下文筛选�,用算力�工程��度。

系统采用“无内存�行时���:�次 LLM 调用完��立��久化,�维护�行时动�状�。

系统没有定义状�在时间轴上演化的动力学方程,状�转移由外部事件驱动。

系统��确定性校验�境输出固化结�,技能文档�在�续被�写。

系统缺少独立� LLM 的�考输入��供负�馈信�。

社区�馈中存在 Token 消耗�学习��性�项目维护效�方�的讨论。

本文基�公开��和社区讨论�技术事�梳�,�包�价值判断。

纯文本版本(便于 AI / 爬虫完整读取)