• 请不要在回答技术问题时复制粘贴 AI 生成的内容
saySilence
V2EX  ›  程序员

有没有办法给 code agent 提供知识库?

  •  
  •   saySilence · 1 day ago · 1616 views

    问题描述

    据我所知,现在的编程 agent 很大程度上受限于上下文长度,各个工具对此的策略都是压缩上下文。
    claude code 和 hermes 有个记忆系统但是我不太了解。
    我在使用 agent 的途中,发现他总是犯同样的错,现在的解决途径是把问题写在 AGENTS.md 里面。
    随着项目开发,在 AGENTS.md 里面做补充越来越像是打补丁,而且有些问题并不常见,但是每次都犯错误真的很难受。
    可能有以下问题:

    • 模型注意力不集中,虽然 AGENTS.md 里面写了,但是他不遵守。按这一点来说,就算搞了个什么知识库的体系,依旧是没有作用。
    • 上下文问题,模型不知道什么时候去找知识库,由于上下文有限,不可能把知识库全量交给模型。
      想问问大家有没有解决的思路或是相关实践。
    Supplement 1  ·  6h 45m ago
    比较粗放的方式是用 AGENTS.md 做索引,可以说明在 xxx 情况下,查看 xxx 文件。
    对于通用的知识库方向,似乎又变成笔记软件的选择了,通用的知识需要同步,而且也不应该直接传到仓库中。
    知识库会难触发一些,这也是我苦恼的地方,可能需要力大砖飞写个通用的提示词,比如“遇到问题先去知识库进行查询”。想想都觉得累……
    12 replies    2026-06-22 17:12:33 +08:00
    Mumu2580
        1
    Mumu2580  
       1 day ago   ❤️ 1
    先建立一个知识库。然后写提示词里面去。暴露 mcp 路径 api ,ok 这个是 外挂知识库了 。接下来是优化搜索技术 相关性 召回这些了。先不用管那么多。搞个 md 文档库就可以了。

    然后开发 skill 写清楚步骤,强制读就可以了。强行注入。每次都开新的 sub 去开发。

    主的只给改动范围。然后 subagent cr 核对。收敛起来了好一点。(会有很多不必要的 cr 的,后面也懒得看了。反驳辩护一轮修完得了)

    然后挂定时跑。走事件驱动。(后面还犯的,我就放弃了 又不是不能跑)
    NewExist
        2
    NewExist  
       1 day ago
    楼上没毛病 也可以基于 cc 的 hooks 去做一些召回 和会话的上传,会话上传后可以基于会话在做一个收敛,常见 bug 和一些少的规范可以在提取到知识库中
    calvinHxx
        3
    calvinHxx  
       1 day ago
    。。。你说的这玩意 不就是 skill 嘛。。自己建一个 docs 文件夹 一边开发一边沉淀就好了。慢慢的你的 ai 就会越来"聪明"
    383394544
        4
    383394544  
       19h 24m ago via iPhone
    没听过 git 吗
    runking
        5
    runking  
       16h 25m ago via iPhone
    https://github.com/monkey-sking/ai-memory-hub
    感觉我这个有可能解决你这个问题
    JasonYip
        6
    JasonYip  
       15h 36m ago via Android
    写 docs 在 claude.md 或者 agent.md 写上这个索引 让 agent 有需要的时候去找
    saySilence
        7
    saySilence  
    OP
       13h 54m ago
    @calvinHxx 普通 skill 应该是不太行的,他的触发条件过于单调,agent 不知道什么时候去查知识库,而且并没有向量化,查的时候只知道根据关键词搜索,同样的问题换个表述可能查不出来。
    saySilence
        8
    saySilence  
    OP
       13h 42m ago
    @Mumu2580 你的意思是搞个知识库服务器,然后通过 mcp 提供服务,在对话开始的时候强制查询吗?定时跑是什么意思,有没有办法让他在中途遇到问题的时候再去知识库里面找找解决方案呢?
    lmoon
        9
    lmoon  
       11h 10m ago
    我是用 obsidian lifeos 去做的,做个人或者项目的知识库沉淀,然后用 obsidian-fast-note-sync 同步和暴露 mcp 服务
    Mumu2580
        10
    Mumu2580  
       10h 15m ago via iPhone
    @saySilence ✍️成 skill 拼到提示词里面。 定时跑是说知识库整理,太多的话效果不好。mcp 意思是 实在太多的话暴露 api 包一个 mcp ,用 mcp 查询,不走 agent 自带的读文件了。中间自己✍️代码喂相关内容。查数据库 查向量库,调其他垂直 agent 等。目前看小场景直接 doc 目录就可以了 提示词里面写什么时候去查。最好还是直接拼接进去少一轮工具调用

    doc 目录 md 文件 知识库里面错误的直接自己改。
    huija
        11
    huija  
       9h 23m ago
    其实是一样的,本地的话,你就用 skill ,大家一起用,维护一个文件服务器封装成 mcp 其实就可以了
    coefu
        12
    coefu  
       6h 11m ago
    你这个问题是一个 很核心也很基本的问题。

    1 ,♾️ context ,这是理想目标。不过理论上可能是达不到了,因为过去的 context 一旦存在压缩,就必然有信息损失,如果能找到一种 信息的无损压缩方法,就很嗨皮了。

    2 ,知识 和 经验,又不同,大部分静态知识 可以 lora / TTT ,搞进基础模型参数里。但是经验 是在迭代更新的,要么像 git 那样显式的版本控制,要么 memory 。但是都存在一个基本问题, 什么时候 记,什么时候 取。当前,就我来看,你只能显式的声明,把你认为重要的要模型记住的东西 写入 memory ,下次让模型先从 memory 里读 相关的内容。因为既然做不到 ♾️ context ,在不同 context 之间,只能用这种显式的有状态来同步。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2703 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 178ms · UTC 15:23 · PVG 23:23 · LAX 08:23 · JFK 11:23
    ♥ Do have faith in what you're doing.