智能体
dev.to ·
@Deian
面向 AI Agent 的人在环知识库
作者不再让 Agent 写入自己的知识库:Agent 可以读取、可以在旁边留注,但知识库本身由人维护。作者曾让多个 Agent 共用 Notion 工作区,期望它们边工作边记录、后续 Agent 读取,结果变成单向通道——页面不断出现,却无人修订、无人标注来源,每次交接都依赖前一个 Agent 是否愿意用自己的话记录。触发点是 Agent 从 Notion 取到过时信息,生成了一页不符合客户规格的页面:规格是对的,页面是错的,Agent 却读错内容并自信地写了出来。
AI推荐理由 文章记录了让 Agent 直接写共享知识库导致内容只增不改、引用缺失、交接依赖前一个 Agent 自述,并最终用错误信息生成不符合规格页面的具体失败案例,提出 Agent 只读、可留注、知识库由人维护的 human-in-the-loop 分工,对 Agent 记忆与知识管理有实际参考价值,但为个人经验总结,无系统评测。
60
正文
I stopped letting my agents write to my knowledge base. They can read it; they can leave notes next to it; but the library itself is mine. That split exists because every agent I run loves to create, and none of them want to update.
For months I gave my agents a shared Notion workspace. The idea was simple: they work, they write down what they learned, the next agent reads it. What I got was a one-way street. Pages appeared. Nothing got revised, nothing cited a source, and every handoff depended on whatever the previous agent had bothered to write down, in its own words.
The moment it got on my nerves: I was working on a client's new feature pages when my agents pulled outdated information from Notion and built a page that wasn't in line with my specs. The specs were right. The page wasn't. The agents had read the wrong thing and written with full confidence.
Who writes? Everybody. Who updates? Nobody. Who checks what's current? Me, by hand, which was the job I had tried to automate.
The split
So I drew a line. On one side: sources. Documents I chose, organized into projects and folders, permanent until I say otherwise. On the other side: notes. My agents can leave these while they work — the problem, what they tried, what worked, what to check next time.
Notes are untrusted by design. They live for 30 days and then they're gone, even the ones I kept. They can't be edited in place (append a new one, remove the old one), they never cross between Profiles, and nothing in them ever becomes a source on its own. A note does not become a fact by being saved.
The triage is mine. I keep a review queue and each note gets one of three verdicts: Keep, Add to draft, or Remove. Useful ones get collected into a draft, and before that draft joins the library I check its claims and edit it myself. Material enters the source library through one door, and I'm standing in it.
Does it work? My library holds 87 docs right now, and I trust all of them.
The loop
When an agent needs knowledge, it asks through the CLI or API. What comes back is short: verbatim passages, each carrying a citation I can open, plus a single support score. Takibi never writes answer prose. If nothing matches, it returns no passages, and my agents are instructed to say the evidence isn't there instead of filling the gap.
When sources disagree, it flags the conflict and returns both sides. I don't want my retrieval picking a winner behind my back. I'd rather see the disagreement and decide.
That citation is the whole point. I can follow it and read what the source actually said, including the qualifications the agent left out.
The permissions
Each job gets its own Profile, which is just a defined view over the same workspace. The writing agent reads approved product folders. Nothing else. The transcript uploader files Capkiku captures into each client's Uploads folder and remembers what it already sent — that workflow can add transcripts but can't edit or delete the library, and Uploads permission is off by default everywhere else.
Keys rotate or revoke individually. Pause a Profile and all its keys stop. Least privilege isn't a posture here, it's the only reason I sleep: a confused agent can only ever touch what its job needed.
The tradeoff
Honest version: I'm the bottleneck now, on purpose. The triage queue is real work, and when the library is thin on a topic the move is still to broaden the question, fall back to search, or read the full document. Sometimes I just haven't added the source yet.
What I'd change? The queue could rank itself better. Right now every note waits equally, and the obviously stale ones should sink on their own. That's next.
Steal this pattern
You don't need my stack for the core idea. Two folders, a TTL habit, and a weekly triage pass get you most of it:
# notes older than 30 days get deleted. no archive.
# if it mattered, it would be a source by now.
find ./agent-notes -name '*.md' -mtime +30 -delete
Enter fullscreen mode
Exit fullscreen mode
The rules that matter: agents append, never edit. Nothing graduates without a human reading it. And the day a note feels too important to expire is the day you promote it, not the day you extend the TTL.
My library is small and I trust all of it. My scratch is large and I trust none of it. That sentence took me one dead product to learn.
I built this into Takibi Base — a shared knowledge base where agents retrieve cited passages from sources I control. If your agents write more than they update, the pattern above works with or without it.