“AI原生社交”这个词这两年被人念得有点烂,但我第一次真正被它打动,是在一个十来人规模的小团队里看他们干活。那天下午,一个新同学在群里问了句“这个鉴权中间件为什么要在网关层再校验一次”,放在传统社交流程里,接下来应该是漫长的等待:等一个恰好在线、恰好懂这块、恰好愿意打字的人。结果他们在用的那套工具,直接把这个问题落到了一个带上下文的会话里,自动挂上了相关的三个文件、两条历史讨论、一份半年前的设计说明,然后一个协作型智能体先给出了初步解释,紧接着原作者补充了两句,修正了其中一个过期结论。整个过程不到四分钟。
这就是焦圈儿这类 AI 原生社交产品想干的事。它不是在聊天框里塞一个问答机器人,而是把“意图”本身当成社交的起点——你带着任务进来,系统帮你找到该找的人、该看的代码、该翻的记录。对开发者这个群体来说,创作协作的摩擦点几乎全在“上下文重建”上,而这恰好是 AI 原生形态最擅长处理的部分。下面这些内容,是我围绕这个方向做的一轮完整梳理和实操记录,从概念拆解、方案选型、机制原理,到能直接抄的配置和踩过的坑,都写进去了。不管你是刚接触这类工具的新手,还是已经在团队里推过一轮的老手,应该都能捞到点东西。
1. 先把“AI 原生”这四个字掰开看清楚
1.1 加个机器人不叫原生,换了起点才叫原生
很多人对 AI 原生社交的理解停留在“我的应用里接了个大模型”。这跟当年“我的网站做了个手机版”是一个层次的东西——形态变了,骨架没变。真正的原生,判断标准只有一个:当你把 AI 能力整个抽走之后,这个产品的核心流程还转不转得动。抽掉之后群聊照聊、消息照发,那叫 AI 增强;抽掉之后连“该把这条信息给谁看”都算不出来,那才叫原生。
焦圈儿这类产品在结构上做了三件事,让它跟传统社群工具拉开了距离。第一,它的基础单元不是“会话”,而是“带上下文的意图条目”——你发起的东西天然携带来源、目标、关联对象。第二,它的参与者里有一等公民身份的智能体,智能体不是被召唤的工具人,而是有固定职责、有记忆、有权限边界的成员。第三,信息的可见性由内容和角色共同决定,而不是简单的一个群成员列表。这三点叠加起来,才让“不用问就知道你要什么”成为可能。
我见过不少团队在这上面走弯路。他们花两周给内部群聊接了个问答机器人,用了一周就没人理了,然后得出结论“AI 社交是伪需求”。其实问题出在第二步:机器人只能被动应答,不掌握任何项目上下文,也没有权限读代码库,那它当然只能给出正确的废话。原生与否的差距,八成落在“它到底能看见什么”上,而不是模型本身多聪明。
1.2 为什么偏偏是开发者群体先被击中
写代码这件事有一个很反直觉的特点:大部分时间不是在写,而是在确认。确认这个函数还有谁在调、确认这版接口变更会不会影响下游、确认三个月前那个临时方案为什么这么定、确认这个报错到底是环境问题还是逻辑问题。这些“确认”动作本质上是信息检索加人际协商的混合体,而这两件事恰好都在社交工具的射程之内,又恰好都没被传统社交工具做好。
传统协作路径是这样的:遇到疑问 → 打开聊天工具 → 找到可能懂的人 → 组织语言描述 → 对方反问细节 → 你截图贴代码 → 对方说“你等一下我看看” → 半小时后回复。这里面真正花在“思考”上的时间可能只有两分钟,剩下全是上下文搬运成本。AI 原生社交要压缩的正是这段搬运过程,它把“找人”和“补上下文”并行做掉,让协商从第一句话开始就站在完整信息上。
另一个原因是开发者的产出物天然结构化。代码有版本、有提交记录、有 diff、有测试结果、有 issue 追踪,这些东西本身就是高质量的上下文原料。相比之下,市场或运营岗位的协作上下文大量散落在口头、图片、临时表格里,抽取难度高一个量级。所以 AI 原生社交在研发场景率先落地,不是巧合,是原料质量决定的。
1.3 三层结构:身份、上下文、动作
把焦圈儿这类产品拆开看,我习惯分成三层来理解,这个分法在后面做方案选型和排查问题时都很好用。
身份层是底子。传统社交的身份是“昵称 + 头像 + 签名”,信息量约等于零。AI 原生社交里的开发者画像是多维的:技术栈分布、历史提交集中在哪些模块、代码评审的响应速度、擅长的问题类型、活跃时段。这些画像不是为了给人打标签,而是为了在“这个鉴权问题该找谁”时能算出一个人选排序。画像越准,路由越省事。
上下文层是核心。它包含项目结构、代码索引、文档、历史讨论、任务状态,并且这些内容必须能被按需检索、按权限裁剪、按版本对齐。这一层的工程质量直接决定了体验上限——模型再强,喂进去三行过期代码也只能输出错误答案。
动作层是价值出口。只读的智能体是玩具,能触发动作的才是同事:发起评审、跑一次测试、生成变更说明、把结论写回文档、按规则分配任务。动作层还带一个隐含要求——可回滚、可审计。智能体做的每一件事都得留痕,出了问题能追到是哪次调用、用了什么上下文、依据哪条规则。
2. 协作痛点拆解与方案选型
2.1 研发协作里真正吃掉时间的四件事
我把过去几个项目的工时记录翻出来对了一遍,发现真正消耗时间的不是敲代码,是下面这四类事情,而且它们有个共同点:都能被上下文供给改善。
第一类是新人冷启动。一个中等规模的仓库,新人从拉代码到能独立提交第一个像样的改动,行业里比较常见的周期是两到四周。这两周里大部分时间花在“读代码猜意图”上——为什么要这么分层、这个工具类为什么不用现成的库、这段注释为什么写着“勿改”。这些问题的答案往往存在于老成员的脑子里和三个月前的讨论记录里,但都不在代码里。
第二类是异步沟通的往返衰减。问一个问题,平均要来回澄清 2 到 3 轮才能让对方真正理解你在问什么。每一轮都是半天起步的延迟。异步不是问题,异步中的信息损耗才是问题。
第三类是评审排队。小改动要等大改动、简单修复要等复杂重构,评审者还得先把整个 diff 的上下文捡起来。一个两百行的 PR,评审者真正花在判断逻辑上的时间可能只有十分钟,但捡上下文要二十分钟。
第四类是知识沉淀失效。群里聊得很透彻,结论也达成了,然后就没有然后了。三个月后同样的坑有人再踩一遍,翻记录翻不到,因为当时的讨论散在几十条消息里,没有任何结构。
这四件事的共同解法指向同一个方向:让上下文可被检索、可被自动装配、可被持续更新。这也正是我在选型时用来筛工具的那把尺子。
2.2 传统“即时通讯 + 文档”组合为什么开始不够用
这套组合曾经很好用,现在的问题不在于它变差了,而在于项目复杂度涨得比它快。一个十人团队三个仓库,信息量还能靠人肉维护;三十人八个仓库加上若干服务,靠“把重要的写进文档”就彻底失效了——因为没人知道哪些是重要的,也没人愿意在交付压力下维护文档。
更关键的是这套组合的检索能力是断裂的。聊天记录能按关键词搜,文档能按标题搜,代码能按符号搜,但这三套检索彼此不通。你搜一个函数名,搜不到当时为什么改的;你搜一句讨论,找不到对应的代码位置。人脑需要在三套系统间来回跳,每跳一次就丢一次上下文。
AI 原生社交的切入点就在这里:它把这几个原本分离的信息源做成一个统一的检索面,再用意图做路由。这不是功能叠加,是把信息架构重新排了一遍。
2.3 四类协作载体的横向对照
做选型时我列了张表,把几种常见形态摆在一起比。这张表后来在团队内部沟通时特别有用,因为它能直观回答“为什么不用现成的群聊加机器人”。
| 维度 | 传统即时通讯 | 文档协作平台 | 代码托管平台 | AI 原生社交(以焦圈儿这类为代表) |
|---|---|---|---|---|
| 上下文保真度 | 低,信息随聊天流稀释 | 中,依赖人工维护 | 高,但仅限代码域 | 高,跨代码、文档、讨论统一索引 |
| 检索能力 | 关键词匹配,无跨源 | 全文检索,无代码理解 | 符号级检索,无讨论关联 | 语义检索 + 跨源关联 + 版本对齐 |
| 响应延迟 | 依赖人在线,小时级 | 无响应能力 | 无响应能力 | 智能体先应答,分钟级 |
| 知识沉淀 | 几乎为零 | 中,但易腐化 | 高,提交历史天然留痕 | 高,结论可回写并带来源 |
| 动作能力 | 仅发消息 | 仅编辑文档 | 提交、评审、流水线 | 评审、测试、生成、分配全覆盖 |
| 上手成本 | 极低 | 低 | 中 | 中,需要一次配置投入 |
| 权限粒度 | 群级 | 文档级 | 仓库/分支级 | 仓库/目录/文件/行级 |
这张表里最值得说的是权限粒度那一行。很多人做 AI 协作工具时把这块想简单了,用一个服务账号统一读所有仓库,结果就是权限边界形同虚设。正确的做法是以发起人的身份去检索,他能看到什么,智能体就能看到什么,一点不多。这个原则后面在实操部分会展开。
2.4 我的选型底线:三条硬指标
聊聊我在实际选型时守的三条线,这三条帮我筛掉了不少看起来很炫但落不了地的方案。
第一条,上下文必须可溯源。智能体给出的任何一个结论,都要能点开看到它依据的是哪个文件的哪几行、哪条讨论的哪句话。没有溯源的 AI 协作,在工程场景里是不可信的——你没法为一个说不出依据的建议负责。这条线一划,那些“把整个仓库塞进上下文然后自由发挥”的方案就出局了。
第二条,动作必须可撤销。智能体可以发起评审、可以写评论,但不能直接合并、不能直接改主干。所有写操作要么走人工确认,要么落在可回滚的分支上。这条听着保守,但我在真实项目里见过因为自动化脚本误触发导致的线上问题,代价太大。
第三条,退出成本要低。团队试用一套新工具,最怕的是用了一个月发现不合适,但沉淀的东西搬不走。所以我要求所有沉淀物(结论、索引、配置)都以标准格式落地,随时能导出。这条线看起来跟技术无关,实际上是推广成败的关键——让人敢试,比让人想试更重要。
3. 核心机制拆解:上下文到底怎么流动
3.1 结构化上下文比聊天记录值钱十倍
先把一个常见误解澄清掉:很多人以为 AI 协作的关键是把聊天记录全喂给模型。实测下来这是最低效的做法——聊天记录信噪比极低,一段两百条的消息里可能只有三条是有效结论,剩下的都是“好的”“收到”“我看看”。
真正有用的是结构化上下文。同样是“鉴权中间件为什么双校验”这个问题,非结构化的形态是几十条消息;结构化的形态是:一条意图条目(问题描述)、三个关联代码位置(网关中间件、服务层拦截器、配置项)、两条历史决策记录(带时间戳和参与者)、一个当前状态标记(这个问题是否已解决)。后者信息量高出一个数量级,而且能被精确裁剪——上下文超预算时,可以只保留决策记录和关键代码行,把过程性讨论丢掉。
焦圈儿这类产品在底层做的就是把非结构化信息持续转成结构化条目。这个过程不需要人手动整理,靠的是提交信息、评审评论、文档变更这些已有的结构化信号自动挂接。人的负担只有一个:把结论说清楚。这也解释了为什么它在研发场景效果好——研发流程本身就产出大量结构化信号。
3.2 上下文预算怎么算,给一套能直接用的公式
上下文窗口是硬约束,超了要么报错要么被静默截断,后者更危险。我用的分配方式是这样的,假设模型窗口是 128K tokens:
- 系统指令与工具定义:预留 3K
- 当前任务描述与近期对话:预留 12K
- 检索到的代码片段:上限 55K
- 检索到的文档与讨论:上限 30K
- 输出预留:28K
加起来正好 128K,留了一点余量给突发的长 diff。关键参数有三个:检索条数 top-k、单片段最大长度、去重阈值。我的默认值是 top-k = 8,单片段最大 1500 tokens,相似度去重阈值 0.92,重排之后再压缩到实际只塞 4 到 6 段。
这里有个容易忽略的细节:代码片段的 token 密度和中文完全不同。中文大约一个字对应 0.6 到 1 个 token,而代码里一个 token 大概对应 3 到 4 个字符。所以按字符数估算会严重低估代码的占用。稳妥做法是用分词器实测,别拍脑袋。我一般会写个脚本把仓库里最长的十个文件和最典型的十个 diff 跑一遍分词,得到一个经验系数,之后估算就准了。
3.3 一个最小可用的上下文打包实现
下面这段是我自己用的上下文打包骨架,逻辑很简单:先按意图检索、再去重、再按预算裁剪、最后拼装并打上来源标记。它不依赖特定平台,换成任何一家 SDK 都能跑。
import hashlib from dataclasses import dataclass @dataclass class Snippet: source: str # 例如 "repo/auth/gateway.py:120-168" text: str score: float kind: str # code / doc / discussion def dedupe(snippets, threshold=0.92): """按文本指纹 + 粗粒度相似度去重,保留分数高的那条""" seen, out = set(), [] for s in sorted(snippets, key=lambda x: -x.score): fp = hashlib.md5(s.text[:200].encode()).hexdigest() if fp in seen or any(_rough_sim(s.text, o.text) > threshold for o in out): continue seen.add(fp) out.append(s) return out def pack(snippets, budget_tokens, tokenizer): """按预算装填,代码与文档分开配额,避免一类挤掉另一类""" quota = {"code": int(budget_tokens * 0.65), "doc": int(budget_tokens * 0.35)} used = {"code": 0, "doc": 0} picked = [] for s in snippets: key = "code" if s.kind == "code" else "doc" n = len(tokenizer.encode(s.text)) if used[key] + n > quota[key]: continue used[key] += n picked.append(s) return picked def render(picked): """拼装成带来源标记的上下文块,便于溯源""" blocks = [] for s in picked: blocks.append(f"[来源 {s.source}]\n{s.text}\n") return "\n".join(blocks)这套代码的价值不在复杂度,在于它强制你把“配额”和“溯源”两个约束写进流程。我见过太多项目图省事直接拼字符串,跑了两周才发现模型经常引用不存在的文件——因为上下文里混进了过期内容,又没有任何来源标记可供核对。
3.4 权限模型:以发起人身份检索,一点不多
权限这块我要单独说,因为它是踩坑最多的地方。早期图省事用了服务账号统一索引,结果出现了一个尴尬情况:某个受限目录里的配置片段被检索出来,出现在了不该看到它的人面前。虽然只是内网,但这件事在评审会上被拎出来讨论了很久。
改法是这样的:索引阶段用服务账号做全量建库,检索阶段一律以发起人的身份做二次过滤。具体实现分两步,第一步在建索引时给每个片段打上可见性标签(所属仓库、目录、分支、是否为敏感配置),第二步在检索结果返回后,用发起人的权限集去交集过滤,过滤发生在拼装上下文之前,而不是之后。
顺便说一个实践中的小技巧:建一个类似.aiignore的排除清单,把所有含密钥、连接串、内部地址的文件类型默认排除在索引之外,即使它们被误放进仓库也不进库。这个清单我建议按扩展名和路径模式双维度写,不要只写扩展名,因为配置文件可能是任意后缀。
# .aiignore 片段示例 exclude_by_ext: - .pem - .key - .p12 - .env exclude_by_path: - "**/secrets/**" - "**/config/local/**" - "**/*credential*"4. 实操:从零搭一条 AI 原生协作流
4.1 环境准备与账号配置
先说准备工作。这一步看着琐碎,但配置错了后面全是隐性问题。我按顺序列一下我实际走的流程。
第一步,创建项目空间。一个空间对应一个产品线或一个独立仓库组,不要把所有项目塞进一个空间,否则检索会互相污染。命名上建议带上前缀,方便后面按前缀批量授权。
第二步,连接代码仓库。用只读凭据接入,权限范围精确到需要协作的那几个仓库。这里有个细节:如果你接的是多个平台的仓库,注意统一文件路径的表示方式,否则后面溯源时会出现同一文件两种写法,人会看晕。
第三步,配置模型端点。把主模型和兜底模型分开配,主模型负责复杂推理,兜底模型负责高频简单问答,成本能降一个量级。超时时间建议设短一点,八到十二秒,超过就降级到兜底,别让人干等。
第四步,建立成员画像。这一步最容易被跳过,但它直接决定路由质量。至少要把技术栈、负责模块、活跃时段三项填上,剩下的可以让系统从提交记录里慢慢学习。
4.2 知识底座:索引策略与更新频率
索引不是一锤子买卖,更新策略比初次建库更重要。我用的组合是全量建库 + 增量更新 + 每日对账。
全量建库只在项目接入时跑一次,把主干分支和最近半年的提交历史、文档、讨论记录全部纳入。增量更新跟着提交钩子走,每次合并触发对应文件的重新索引,延迟控制在两分钟内。每日对账是兜底,扫一遍全库,把增量过程中漏掉或状态不一致的片段修正回来。
这里有个参数值得调:历史讨论的回溯窗口。我的经验值是九十天。太短会丢掉关键决策记录,太长会把大量过期信息拉进来污染检索。这个值不是死的,如果项目迭代节奏快,缩到四十五天;如果是需要长期维护的基础库,可以放到一百八十天。
还有一个必须做的动作:给每个片段打版本戳。片段内容、所属提交、索引时间三个字段一起存。检索时优先返回主干分支最新版本,如果命中的是历史版本,要在结果里明确标注“此为历史版本,当前主干已变更”。这一条能省掉后面大量“为什么它说的跟代码对不上”的困惑。
4.3 写第一个协作型智能体:评审助手的最小实现
智能体的配置结构其实很朴素:角色定义、可用工具、行为约束、输出格式。难点全在约束上,写得太宽会乱来,写得太死会没用。下面这份配置是我调到比较满意的状态,可以直接参考。
name: review-assistant role: | 你是某项目的代码评审助手。你只对当前 diff 相关的逻辑问题发表意见, 不评论代码风格、命名偏好、格式问题(这些交给静态检查工具)。 如果上下文中没有足够信息支撑判断,必须明确说明"信息不足,建议人工确认", 禁止基于猜测给出结论。 tools: - name: search_code desc: 在项目索引中检索代码片段,返回带来源标记的结果,最多 8 条 - name: search_discussion desc: 检索历史讨论与决策记录,返回带时间戳与参与角色的摘要 - name: get_file_context desc: 获取指定文件在指定分支的完整内容,用于理解调用关系 constraints: - 每条结论必须附带来源标记,格式为 [来源 路径:行号] - 单次评审输出不超过 6 条意见,按严重程度排序 - 涉及数据变更、权限判断、外部调用的改动,必须显式检查是否有对应测试 - 不得直接修改代码,只能输出建议 output_format: | ## 评审意见 1. [严重程度] 问题描述 - 依据:[来源 xxx] - 建议:xxx ## 未覆盖的部分 列出你无法判断的点,说明缺什么信息这段配置里最关键的是两条。一条是**“信息不足就说信息不足”,这条能把幻觉率压下来一大截。另一条是“涉及数据变更、权限判断、外部调用的改动必须检查测试”**,这是把团队的硬性规范写进智能体,比写进文档有效得多——文档没人看,智能体每次都执行。
4.4 把评审接进协作流:触发、执行、确认
流程本身分四段:事件触发、上下文装配、生成建议、人工确认。
事件触发用合并请求的创建和更新事件,走 webhook。我一般会加一个过滤条件:单次变更行数超过某个阈值(比如八百行)时先不自动评审,改成提示拆分成小改动。原因很实在,超大 diff 的上下文根本装不下,硬评只会给出一堆泛泛而谈。
上下文装配是核心环节,顺序是:先拿 diff → 提取变更文件列表 → 对每个文件检索调用方与被调用方 → 检索相关历史讨论 → 去重裁剪 → 拼装。这里有个我自己加的小优化:优先检索变更位置上下游各 50 行的代码,而不是整个文件。实测下来相关性高得多,也省预算。
生成建议之后不要直接发出去,先落到一个待确认队列,由发起人或指定评审人一键采纳或忽略。这个“一键”很关键,它决定了人愿不愿意用——如果每次都要手动复制粘贴,用两天就烦了。
一次典型的调用大概长这样:
curl -s -X POST "$ENDPOINT/review" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "repo": "demo-service", "base": "main", "head": "feature/auth-guard", "max_comments": 6, "require_source": true, "identity": "user-a" }'注意identity这个字段,它的作用是让检索按发起人权限过滤,前面讲权限模型时提到的那条原则,就落在这个参数上。
4.5 怎么判断这套东西真有用:三个可测指标
不谈指标的上线都是自嗨。我用了三个指标来衡量效果,都不复杂,但都能说明问题。
| 指标 | 定义 | 观察到的变化区间 | 说明 |
|---|---|---|---|
| 上下文重建时长 | 从提出疑问到形成可执行结论的中位耗时 | 从小时级降到十分钟级 | 最能直接反映价值 |
| 评审闭环时长 | 提交到首次获得有效意见的中位耗时 | 缩短约一半 | 注意排除机器人噪音 |
| 上下文复用率 | 被两个以上意图条目引用的片段占比 | 稳定在 30% 到 45% | 太低说明索引浪费,太高说明索引太窄 |
第一个指标需要埋点,从问题创建到标记解决打时间戳。第二个从合并请求事件里算。第三个稍微绕一点,统计片段被引用的次数分布。三个指标里我最看重第三个,因为它反映的是知识底座有没有真正被用起来——如果复用率长期低于 20%,说明要么索引质量差,要么大家还是在用老办法,这时候该回头看配置了。
5. 常见问题与排查实录
5.1 高频问题速查
下面这张表是我和几个同行交流后汇总的高频问题,基本都是上线第一个月会遇到的。
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| 引用的代码跟当前主干对不上 | 索引延迟或版本戳缺失 | 检查增量更新钩子,补版本戳字段 |
| 回答泛泛而谈,没有具体位置 | 检索结果为空或相关性太低 | 调大 top-k,检查排除清单是否误伤 |
| 上下文超限被截断 | 单片段过长或条数过多 | 降单片段上限,加去重阈值 |
| 出现越权内容 | 用了服务账号检索 | 改为以发起人身份二次过滤 |
| 机器人刷屏,成员反感 | 无节制推送 | 合并通知,只在有实质问题时发言 |
| 新人不知道怎么用 | 缺少入口引导 | 在最高频场景做一键触发入口 |
| 成本超预期 | 简单问题也走主模型 | 加意图分类,简单问题降级兜底模型 |
5.2 几个我踩过的坑,值得单独说
第一个坑是索引过期导致的“自信错误”。早期版本没做版本戳,模型引用了半年前的一段实现,说得头头是道,但那段代码早就重构掉了。这种错误最麻烦,因为它看起来非常可信,不带任何犹豫。后来加了版本戳和“历史版本”标注,问题基本消失。教训是:在 AI 协作里,错误信息的呈现方式比错误本身更危险。
第二个坑是过度自动化引发的信任崩塌。有段时间我把评审意见设成自动发布,结果一周内出现了三次误判——一次把一个刻意的空实现判成遗漏,一次建议删掉一段看起来冗余但实际是兜底的判断。虽然都不是大问题,但团队成员的信任度掉得很快,有人直接在群里说“这玩意儿别发了”。后来改成待确认队列,误判率没变,但感受完全不一样了,因为人保留了最终决定权。
第三个坑是冷启动期没人用。工具上线第一天大家图新鲜点了几下,第三天就回归老路。复盘发现原因是入口太深——要打开新页面、新建条目、选类型、填描述,四步才能发起一次协作。后来把入口做到提交页面旁边,一个按钮带上当前 diff 直接发起,使用量翻了好几倍。这件事让我彻底相信一句话:降低一步操作,胜过写十页使用文档。
5.3 团队落地时我建议守的几条经验
第一条,别一上来就全员推。挑三到五个最痛的高频场景先做透,比如新人提问、评审排队、变更说明生成,做出来让人看见效果,比开十次宣讲会有用。
第二条,保留人工兜底通道。任何时候都要有一个“这个回答不对,转人工”的按钮,而且点了之后要能真的转到人。这条不是为了兜底错误,是为了给人安全感——知道随时能退出,才敢放心用。
第三条,把规范写进智能体,别只写进文档。文档是给人看的,人可以不看;智能体是每次都要执行的。团队的硬性规范,比如“涉及权限的改动必须有测试”,写进约束里比写在 wiki 里有效得多。
第四条,定期清理索引。项目跑三个月,仓库里会积压大量废弃分支和临时文档,这些东西不进清理就会一直污染检索。我一般每月做一次,把已合并分支、超过半年未变更的临时文档移出索引范围。
第五条,别指望它替代人。我见过最离谱的期望是“有了这个就不用招人了”。这套东西压缩的是上下文搬运成本,不是判断成本。架构决策、权衡取舍、责任承担,这些还是得人来。工具能让你少花时间在找信息上,多花时间在想问题上,这已经是很大的价值了,别贪。
最后分享一个我最近在试的小做法:给每个智能体的输出加一个“置信度”标签,分三档——有明确来源支撑的、部分推断的、纯属猜测的。标出来之后,人对结果的采信方式完全变了,看到“纯属猜测”就知道该自己去看一眼,而不是被一段流畅的文字带着走。这个改动成本很低,但对使用体验的提升超出预期,如果你也在搭类似的东西,可以试试从这一条开始。