<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Lucas Ma 的博客</title>
    <link>https://blog.lucasma.cc/</link>
    <description>Recent content on Lucas Ma 的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>2026 Lucas Ma</copyright>
    <lastBuildDate>Tue, 05 May 2026 22:24:23 +0800</lastBuildDate>
    <atom:link href="https://blog.lucasma.cc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Test Post</title>
      <link>https://blog.lucasma.cc/posts/test-post/</link>
      <pubDate>Tue, 05 May 2026 22:24:23 +0800</pubDate>
      <guid>https://blog.lucasma.cc/posts/test-post/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;Skill 是目前 Agent 最灵活的扩展方式——一个文件夹 + 一个 &lt;code&gt;SKILL.md&lt;/code&gt; 文件，就能让 AI 助手获得特定能力。&lt;/p&gt;
&lt;p&gt;但灵活性也是双刃剑：怎么写才算好？什么时候该拆 skill？什么时候该退休？&lt;/p&gt;
&lt;p&gt;Philipp Schmid 在实践中总结了 8 条经验，今天我们用大白话 + 实战案例把它讲透。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我随便测试下&lt;/p&gt;</description>
    </item>
    <item>
      <title>写好 Agent Skill 的8个实战技巧</title>
      <link>https://blog.lucasma.cc/posts/8-tips-writing-agent-skills/</link>
      <pubDate>Tue, 05 May 2026 22:00:00 +0800</pubDate>
      <guid>https://blog.lucasma.cc/posts/8-tips-writing-agent-skills/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;Skill 是目前 Agent 最灵活的扩展方式——一个文件夹 + 一个 &lt;code&gt;SKILL.md&lt;/code&gt; 文件，就能让 AI 助手获得特定能力。&lt;/p&gt;
&lt;p&gt;但灵活性也是双刃剑：怎么写才算好？什么时候该拆 skill？什么时候该退休？&lt;/p&gt;
&lt;p&gt;Philipp Schmid 在实践中总结了 8 条经验，今天我们用大白话 + 实战案例把它讲透。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一先搞清楚-skill-到底是什么&#34;&gt;一、先搞清楚 Skill 到底是什么&lt;/h2&gt;
&lt;p&gt;Skill 由三层构成：&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;graph TD
    A[&amp;#34;Skill = 文件夹 + SKILL.md&amp;#34;] --&amp;gt; B[&amp;#34;Frontmatter\nname + description&amp;#34;]
    A --&amp;gt; C[&amp;#34;Body\n指令正文&amp;#34;]
    A --&amp;gt; D[&amp;#34;Helper Files\n辅助脚本/资源&amp;#34;]
    
    B --&amp;gt; E[&amp;#34;始终加载&amp;#34;]
    C --&amp;gt; F[&amp;#34;Skill 触发后才加载&amp;#34;]
    D --&amp;gt; G[&amp;#34;按需加载&amp;#34;]
&lt;/pre&gt;

&lt;p&gt;Skill 分两类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Capability Skill&lt;/strong&gt;：赋予 Agent 原本不会的能力（比如「用 Python 操作 Excel」）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guidance Skill&lt;/strong&gt;：规范 Agent 的行为方式（比如「代码审查规范」）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;实战建议：如果你发现同一个 skill 里既教 Agent 做什么、又教 Agent 怎么做，十有八九该拆成两个。&lt;/p&gt;</description>
    </item>
    <item>
      <title>LLM Agent 记忆系统设计指南：让AI拥有&#34;记忆&#34;的技术原理与实战</title>
      <link>https://blog.lucasma.cc/posts/llm-agent-memory-systems/</link>
      <pubDate>Tue, 05 May 2026 21:08:51 +0800</pubDate>
      <guid>https://blog.lucasma.cc/posts/llm-agent-memory-systems/</guid>
      <description>&lt;h2 id=&#34;痛点为什么你的ai-agent总是失忆&#34;&gt;痛点：为什么你的AI Agent总是&amp;quot;失忆&amp;quot;？&lt;/h2&gt;
&lt;p&gt;用过 AI Agent 的同学一定遇到过这种情况：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;上一轮对话你告诉它「我的项目叫 XXX」，下一轮它就忘了。&lt;/p&gt;
&lt;p&gt;你让它先查文件、再写代码、再测试，它全做完了，但最后问你「测试结果是什么」时，它一脸茫然——因为它不记得自己刚才做了什么。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这不是 Bug，这是&lt;strong&gt;记忆缺失&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;大模型（LLM）本身是&lt;strong&gt;无状态的&lt;/strong&gt;（Stateless）：每一次 API 调用都是独立的，模型不会「记住」之前发生的事。&lt;/p&gt;
&lt;p&gt;那么问题来了——&lt;strong&gt;如何让 AI Agent 拥有记忆？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;今天我们从原理到实现，系统性地拆解 LLM Agent 的记忆系统设计。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一记忆系统的本质让模型看到历史&#34;&gt;一、记忆系统的本质：让模型「看到」历史&lt;/h2&gt;
&lt;p&gt;先厘清一个核心概念：所谓 AI Agent 的「记忆」，本质上就是&lt;strong&gt;把历史上下文塞进下一轮 Prompt 里&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;模型自己没有记忆，我们要做的是：&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;graph LR
    A[&amp;#34;用户输入&amp;#34;] --&amp;gt; B[&amp;#34;检索记忆&amp;#34;]
    B --&amp;gt; C[&amp;#34;拼接 Context&amp;#34;]
    C --&amp;gt; D[&amp;#34;LLM 推理&amp;#34;]
    D --&amp;gt; E[&amp;#34;模型输出&amp;#34;]
    E --&amp;gt; F[&amp;#34;写入新记忆&amp;#34;]
    F --&amp;gt; B
&lt;/pre&gt;

&lt;p&gt;整个流程闭环：&lt;strong&gt;检索 → 拼接 → 推理 → 写入 → 下一轮检索&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;所以记忆系统的核心模块只有三个：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;记忆存储&lt;/strong&gt;（Memory Storage）—— 记忆怎么存？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆检索&lt;/strong&gt;（Memory Retrieval）—— 需要用时怎么找？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;记忆写入&lt;/strong&gt;（Memory Write）—— 新信息怎么记录？&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二记忆存储三种主流方案&#34;&gt;二、记忆存储：三种主流方案&lt;/h2&gt;
&lt;h3 id=&#34;21-方案一全量上下文full-context&#34;&gt;2.1 方案一：全量上下文（Full Context）&lt;/h3&gt;
&lt;p&gt;最暴力的方案——把历史对话全部塞进 Context Window。&lt;/p&gt;</description>
    </item>
    <item>
      <title>code-minions：一个用 YAML 编排 AI 研发流程的工作流引擎</title>
      <link>https://blog.lucasma.cc/posts/code_minions_arch/</link>
      <pubDate>Tue, 05 May 2026 16:38:19 +0800</pubDate>
      <guid>https://blog.lucasma.cc/posts/code_minions_arch/</guid>
      <description>&lt;h2 id=&#34;痛点ai-工具散落成孤岛团队研发流程靠人肉串&#34;&gt;痛点：AI 工具散落成孤岛，团队研发流程靠&amp;quot;人肉&amp;quot;串&lt;/h2&gt;
&lt;p&gt;过去两年，AI 辅助编程工具爆发式增长——Code Review 有 AI Review，任务管理有 Jira AI Bot，代码生成有 Copilot……但把它们真正串联成一条&lt;strong&gt;可自动化、可复用、可审计&lt;/strong&gt;的研发链路？&lt;/p&gt;
&lt;p&gt;大多数团队的选择是：写一堆脚本，人肉约定执行顺序，然后祈祷不会出 bug。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;code-minions&lt;/code&gt; 正是为了解决这个问题而生的。它的核心理念只有三句话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用 &lt;strong&gt;YAML 定义工作流&lt;/strong&gt;，用 &lt;strong&gt;Skill 装配能力&lt;/strong&gt;，用 **MCP 对接外部系统。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今天我们从架构设计到源码实现，把它的每一个核心模块讲透。&lt;/p&gt;
&lt;p&gt;项目开源地址：https://github.com/pony-maggie/code_minions&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一整体架构五层分层&#34;&gt;一、整体架构：五层分层&lt;/h2&gt;
&lt;pre class=&#34;mermaid&#34;&gt;graph TD
    subgraph CLI层
        CLI[&amp;#34;CLI (code-minions run/start/status/resume)&amp;#34;]
    end

    subgraph Workflow Engine
        Engine[&amp;#34;Engine — 顶层编排器&amp;#34;]
        DAGRunner[&amp;#34;DAG Runner — 步骤调度器&amp;#34;]
        WorkflowLoader[&amp;#34;Workflow Loader — YAML 解析&amp;#34;]
        SkillLoader[&amp;#34;Skill Loader — SKILL.md 解析&amp;#34;]
    end

    subgraph Skill Runtime
        SkillRuntime[&amp;#34;Skill Runtime — 技能执行器&amp;#34;]
        ToolExecutor[&amp;#34;Tool Executor — 工具执行&amp;#34;]
        ContextAssembler[&amp;#34;Context Assembler — 上下文注入&amp;#34;]
    end

    subgraph 能力基座
        LLM[&amp;#34;LLM Backend\n(Multi-Provider)&amp;#34;]
        MCP[&amp;#34;MCP Client Pool&amp;#34;]
        Git[&amp;#34;Git Worktree Manager&amp;#34;]
        RunStore[&amp;#34;SQLite Run Store&amp;#34;]
    end

    CLI --&amp;gt; Engine
    Engine --&amp;gt; DAGRunner
    Engine --&amp;gt; WorkflowLoader
    Engine --&amp;gt; SkillLoader
    DAGRunner --&amp;gt; SkillRuntime
    SkillRuntime --&amp;gt; ToolExecutor
    SkillRuntime --&amp;gt; ContextAssembler
    SkillRuntime --&amp;gt; LLM
    SkillRuntime --&amp;gt; MCP
    DAGRunner --&amp;gt; Git
    Engine --&amp;gt; RunStore
&lt;/pre&gt;

&lt;p&gt;五大核心环节（对应 PRD → 工单 → 代码 → TDD → AI Code Review）：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
