链载Ai

标题: 上下文工程的Agent Skills来了,CC、Codex直接用,一周获2.3k star [打印本页]

作者: 链载Ai    时间: 5 小时前
标题: 上下文工程的Agent Skills来了,CC、Codex直接用,一周获2.3k star

GitHub上最近出现了一个非常火的项目Agent-Skills-for-Context-Engineering,发布不到一周就斩获了2.3k Stars。为什么它能瞬间引爆社区?因为站在2025年末的节点上,我们已经受够了那些只存在于大厂白皮书里的Context Engineering(上下文工程) 理论。

对于每天在终端里使用AI编程的极客来说,我们不需要另一篇教我们“什么是上下文”的论文,我们需要的是能直接装进Claude Code里的武器。这个项目正是填补了这一空白!它将晦涩的上下文管理策略,封装成了即插即用的10个Agent Skills。利用Claude的自动按需加载与模型自行触发机制,它让AI终于学会了像资深工程师一样自己管理“内存”。这就是一套Context Engineering的最佳实践工具库,爽点就在于:你只管提问,剩下的脏活累活,让Skill自动替你完成。用之前先把今天这篇文章看完,对每一个SKILL.md有一个大致了解。

项目地址:https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering

Skill的解剖学:一个“能力包”长什么样?

以下是一个Skills的文件结构,不熟悉的朋友可以了解一下。

my-skill/
├── SKILL.md          # 核心:包含元数据(YAML)和指令(Markdown)
├── scripts/          # 可选:Python/Bash脚本,供Agent调用
├── references/       # 可选:长文档、API手册、参考资料
└── assets/           # 可选:模板文件、静态资源

以此构成了Agent的技能包

重新定义上下文:Agent的注意力预算

上下文是稀缺资源,是Agent的全部世界。

上下文的结构

项目作者在第一个skill context-fundamentals 中将上下文拆解为五个核心组件。这种分类法能帮您清晰地识别出“Token究竟花在哪了”:

渐进式披露:按需加载的艺术

如果您有100项专业技能,全部塞进系统提示词会瞬间耗尽Agent的注意力。项目作者提出的“渐进式披露”策略,是解决该问题的金钥匙:

诊断退化:为什么模型会越聊越笨?

 context-degradation 是第二个Skill,在这个skill中,项目作者总结了长对话中性能下降的必然规律。理解这些模式,能帮您在调试时少走弯路。

迷失在中间 (Lost-in-the-Middle)

这是最著名的衰减现象。模型对上下文两端的信息记忆清晰,但对中间部分的信息召回率极低:

原理解析:用Python模拟注意力衰减

项目中的 degradation_detector.py 脚本包含了一个有趣的函数 _estimate_attention,它用代码量化了这种“U型曲线”:

def _estimate_attention(position, total, is_beginning, is_end):
    if is_beginning:
        return 0.8 + np.random.random() * 0.2  # 开头:高关注
    elif is_end:
        return 0.7 + np.random.random() * 0.3  # 结尾:次高关注
    else:
        # 中间:注意力塌陷区
        # 模拟了一个从两端向中间递减的U型谷底
        middle_progress = (position - total * 0.1) / (total * 0.8)
        base_attention = 0.3 * (1 - middle_progress) + 0.1 * middle_progress
        return base_attention 

这段代码直观地说明:任何放在 else 分支(中间区域)的关键信息,都有70%的概率被模型忽略。

上下文中毒 (Context Poisoning)

一旦Agent在某一步产生了幻觉或错误,如果不及时清理,后续所有的推理都会基于这个错误前提。

常见的其他退化模式

压缩与优化:每一Token都要物尽其用

context-compression和context-optimization是第三和第四个skill,当您的上下文水位达到70%时,优化就不再是选项,而是必须。

观察掩码 (Observation Masking)

这是项目作者极力推荐的高级技巧。当Agent读取一个几万字的日志或文件时,不要让这些原文留在上下文中:

锚定迭代摘要 (Anchored Iterative Summarization)

传统的“全量总结”会随着次数增加而丢失细节。项目作者提出的方案是维护一个结构化的状态块:

原理解析:结构化摘要的Prompt模板

传统的摘要是“请总结以上对话”,而Context Engineering的摘要指令是填空题。在 context-compression Skill中,定义了这样的强制结构:

## Session Intent
[用户原本想解决什么问题?]

## Files Modified
- auth.controller.ts: Fixed JWT token generation
- config/redis.ts: Updated connection pooling

## Decisions Made
- Using Redis connection pool instead of per-request connections

## Next Steps
1. Fix remaining test failures
2. Run full test suite

这种结构的妙处在于,它迫使模型把“非结构化的对话流”转换成了“结构化的状态快照”。当上下文重置时,Agent读到的是这份快照,而不是模糊的回忆。

KV-Cache命中率优化

在生产环境中,延迟和成本是绕不开的。项目作者指出,优化KV-Cache命中率能带来10倍以上的性能提升:

架构设计:多Agent协作的底层逻辑

项目作者在第五个skill multi-agent-patterns 中反复强调:多Agent不是为了排场,而是为了“上下文隔离”。

为什么要进行上下文隔离?

实战案例分析:X-to-Book系统

项目中的这个案例完美展示了上下文如何有序流动:

解决“传声筒问题”

主管Agent在转述子Agent的结论时容易产生偏差。项目作者提供的解决方案是:

原理解析:Supervisor的路由逻辑实现

在 multi-agent-patterns 技能中,Supervisor的核心并不是一个复杂的Prompt,而是一个基于状态机的路由函数。以下是基于LangGraph的实现片段:

def supervisor_node(state: AgentState) -> AgentState:
    task = state["task"]
    
    # 基于任务类型的确定性路由,而非让LLM瞎猜
    if"research"in task.lower():
        next_agent = "researcher"
    elif"write"in task.lower():
        next_agent = "writer"
    elif"review"in task.lower():
        next_agent = "reviewer"
    else:
        next_agent = "coordinator"
    
    return {
        "current_agent": next_agent,
        "messages": state["messages"] + [f"Routing to {next_agent}"]
    }

高效的编排往往包含大量的确定性逻辑。不要把所有压力都给LLM,工程代码才是最稳定的骨架。

记忆系统:从向量检索到时态图谱

如果您的Agent需要记住用户一年前的偏好,或者处理随时间变化的信息,普通的RAG将会失效。因此有了第六个skill memory-systems

向量存储的“时态盲区”

时态知识图谱的关键技术

原理解析:为知识加上时间戳

项目中的 memory_store.py 包含了一个 TemporalKnowledgeGraph 类,它扩展了普通图存储,强制要求每条边都具备时间属性:

class TemporalKnowledgeGraph(PropertyGraph):
    def create_temporal_relationship(
        self, source_id, rel_type, target_id, 
        valid_from, valid_until=None, properties=None
    ):
        # 创建基础关系
        edge_id = super().create_relationship(...)
        
        # 注入时间维度(这才是关键!)
        self.edges[edge_id]["valid_from"] = valid_from.isoformat()
        self.edges[edge_id]["valid_until"] = valid_until.isoformat()
        
        # 建立时间索引,加速"穿越"查询
        self._index_by_time(edge_id, valid_from, valid_until)
        return edge_id

正是因为这两行简单的赋值,Agent才能拥有记忆。


工具设计

工具是Agent的手脚。在第七个skill tool-design 中,项目作者提出了一个反直觉的建议:架构缩减

合并原则 (Consolidation)

不要为每一个细小的功能写一个工具。

案例:Vercel d0的架构重构案例

项目中存在一个名为Vercel的案例,它们最初为其内部Agent设计了17个专业工具,效果平平。项目作者详细分析了他们后来的改进:

原理解析:从17个工具到2个

让我们看看代码层面的变化。

Before (Over-engineered):

// 试图帮模型"思考",结果限制了模型
tools: [
  GetEntityJoins, LoadCatalog, RecallContext, 
  SearchSchema, GenerateAnalysisPlan, FinalizeQueryPlan,
  SyntaxValidator, ExecuteSQL, FormatResults... 
]

After (The File System Agent):

// 相信模型的推理能力,只提供基础能力
tools: [
  {
    name: "execute_command",
    description: "Execute bash commands (ls, cat, grep) to explore the data layer files.",
    parameters: { command: z.string() }
  },
  {
    name: "execute_sql",
    description: "Run a SQL query against the database.",
    parameters: { query: z.string() }
  }
]

这种架构缩减(Architectural Reduction)是Tool Design技能中最反直觉但也最深刻的一课。

评估体系:如何客观地衡量Agent的“智商”?

Agent的评估不能靠“感觉”,必须依赖评估框架。因此有了第八个skillevaluation和第九个Skilladvanced-evaluation

95%性能变异公式

项目作者引用了一个重要的研究结论:Agent性能的95%变异由三个因素决定:

  1. Token使用量 (80%):给模型更多的推理空间(如思维链)。

  2. 工具调用次数 (~10%):更深度的探索能力。

  3. 模型本身的选择 (~5%):基础智力底座。

高级评估技巧:LLM-as-a-Judge

为了实现自动化评估,需要训练“裁判模型”

开发方法论:从Demo到生产环境

拥有了以上9个Skill,我们该如何从零开始构建一个项目?project-development 第十个skill给出了一套“五阶段流水线”方法论。这里有一个核心原则:在写第一行代码前,先用人肉的方式跑通流程。

任务-模型匹配 (Task-Model Fit) 的手动验证

很多项目死在起跑线上,是因为开发者高估了模型的能力。项目作者建议在写代码前,先进行一次“手动原型测试”。

文件系统即状态机 (File System as State Machine)

当您开始编写Python脚本来批量处理1000份财报时,不要急着引入MySQL或Redis。项目作者提倡开发者直接利用文件系统来管理任务进度。

想象一下,对于每一份财报(Item),我们在硬盘上创建一个文件夹,用文件的存在与否来标记进度:

data/batch_2025/report_AAPL/
├── raw.json         # [阶段1完成]:爬虫已抓取到数据,存盘。
├── prompt.md        # [阶段2完成]:Python脚本已读取raw.json,组装好了发给LLM的最终提示词。
├── response.md      # [阶段3完成]:LLM已返回结果。这是最贵、最慢的一步,存盘后这就成了“存档点”。
└── parsed.json      # [阶段4完成]:已从response.md中提取出结构化数据。

结语:建立工程化思维

通过对 Agent-Skills-for-Context-Engineering 项目的深度解析,我们可以清晰地看到,Agent的开发已经进入了“系统工程”时代。

上下文工程是一个不断进化的领域。项目作者为您提供的这些Skills,是您在这个充满不确定性的AI世界中,构建确定性系统的压舱石。建议您直接深入代码库,去感受那些时态图谱和掩码算法带来的工程魅力。

未来已来,有缘一起同行!

图片

<本文完结>

  1. 转载请与本喵联系,私自抓取转载将被起诉
🎉让我们一起创造更多美好! 🎉

如果您觉得这篇文章对您有帮助
感谢您为我【点赞】【在看】

<您为我点赞在看,只有我能看到>

👉微信号:xiumaoprompt

添加请注明来意!






欢迎光临 链载Ai (http://www.lianzai.com/) Powered by Discuz! X3.5