guantao 21764bb31e add knowledge agent and reconstruct database 15 часов назад
..
README.md 21764bb31e add knowledge agent and reconstruct database 15 часов назад
__init__.py 21764bb31e add knowledge agent and reconstruct database 15 часов назад
cache_manager.py 21764bb31e add knowledge agent and reconstruct database 15 часов назад

README.md

KnowHub Internal Tools

这些工具只能在 Knowledge Manager 内部使用,不暴露给普通 Agent。

缓存管理工具

Knowledge Manager 使用本地缓存机制来处理调研数据,流程如下:

1. 接收数据 → 缓存到本地

调研 Agent 通过 IM 发送调研结果时,KM 使用 cache_research_data 缓存到本地:

await cache_research_data(
    data={
        "tools": [...],
        "resources": [...],
        "knowledge": [...]
    },
    source="agent_research"
)

存储位置.cache/.knowledge/buffer/{source}_{timestamp}.json

2. 整理数据 → 去重合并

当需要整理缓存数据时,使用 organize_cached_data

await organize_cached_data(merge=True)

功能

  • 读取所有 buffer 中的文件
  • 按名称/标题去重
  • 合并到一个文件
  • 保存到 .cache/.knowledge/organized/organized_{timestamp}.json
  • 清空 buffer(如果 merge=True

3. 提交到数据库(可选)

只有在明确要求时,才使用 commit_to_database 提交到数据库:

await commit_to_database()

功能

  • 读取最新的 organized 文件
  • 调用 resource_saveknowledge_save 入库
  • 返回提交统计

4. 查看缓存状态

使用 list_cache_status 查看当前缓存情况:

await list_cache_status()

工作流示例

场景 1:只缓存和整理,不入库

调研 Agent: 发送调研结果
KM: cache_research_data() → 缓存到 buffer
KM: 回复"已缓存"

用户: 整理一下
KM: organize_cached_data() → 整理到 organized
KM: 回复"已整理,去重 X 个"

场景 2:缓存、整理、入库

调研 Agent: 发送调研结果
KM: cache_research_data() → 缓存到 buffer
KM: 回复"已缓存"

用户: 提交到数据库
KM: organize_cached_data() → 整理
KM: commit_to_database() → 入库
KM: 回复"已提交到数据库"

目录结构

.cache/.knowledge/
├── buffer/              # 原始缓存(调研 Agent 提交的数据)
│   ├── agent_research_20260402_120000.json
│   └── agent_research_20260402_130000.json
└── organized/           # 整理后的数据(去重合并)
    └── organized_20260402_140000.json

设计原则

  1. 默认缓存:收到数据时先缓存,不直接入库
  2. 按需入库:只有明确要求时才提交到数据库
  3. 去重优先:整理时必须去重
  4. 快速响应:缓存操作很快,不阻塞调研 Agent