<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>人工智能与数据 on Jinnchang</title><link>https://jinnchang.github.io/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E6%95%B0%E6%8D%AE/</link><description>Recent content in 人工智能与数据 on Jinnchang</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 19 Apr 2026 22:25:41 +0800</lastBuildDate><atom:link href="https://jinnchang.github.io/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E6%95%B0%E6%8D%AE/index.xml" rel="self" type="application/rss+xml"/><item><title>Retrieval-Augmented Generation</title><link>https://jinnchang.github.io/posts/rag/</link><pubDate>Wed, 25 Mar 2026 10:20:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/rag/</guid><description>&lt;blockquote&gt;
&lt;p&gt;将外部知识注入大语言模型，解决幻觉与知识过时问题，让模型&amp;quot;先检索，后回答&amp;quot;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;RAG 的核心思路很直接：在 LLM 生成回答之前，先从外部知识库中检索相关文档，将检索结果作为上下文一并输入模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RAG 系统架构&lt;/strong&gt;&lt;/p&gt;
&lt;div class="mermaid"&gt;
flowchart LR
A[文档库] --&gt;|加载| B[文本分块]
B --&gt;|Embedding| C[向量数据库]
D[用户提问] --&gt;|Embedding| E[相似度检索]
C --&gt; E
E --&gt;|Top-K 文档| F[拼接 Prompt]
F --&gt;|输入| G[LLM]
G --&gt; H[回答]

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;为什么需要 RAG？&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;知识更新&lt;/strong&gt;：模型训练数据有截止日期，无法回答之后的事件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;领域知识&lt;/strong&gt;：企业内部文档、专业资料不在训练数据中&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;减少幻觉&lt;/strong&gt;：用检索到的真实信息替代模型&amp;quot;编造&amp;quot;内容&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可溯源&lt;/strong&gt;：每条回答都能追溯到具体文档来源&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;关键组件&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;文档加载 → 文本分块 → 向量化(Embedding) → 存储(向量数据库)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户提问 → 向量化 → 相似度检索 → 拼接Prompt → LLM生成回答
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="搭建最小-rag-系统"&gt;
 搭建最小 RAG 系统
 &lt;a class="heading-link" href="#%e6%90%ad%e5%bb%ba%e6%9c%80%e5%b0%8f-rag-%e7%b3%bb%e7%bb%9f"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;以下使用 LangChain + OpenAI 构建一个可运行的 RAG demo，从本地文本文件开始。&lt;/p&gt;</description></item><item><title>Prompt</title><link>https://jinnchang.github.io/posts/prompt/</link><pubDate>Tue, 10 Mar 2026 14:55:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/prompt/</guid><description>&lt;blockquote&gt;
&lt;p&gt;向 AI 模型传达意图的指令语言，决定输出质量的核心输入。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Prompt 是与大语言模型交互的输入文本，包含任务描述、上下文和约束条件。其质量直接影响模型输出的准确性和可用性。&lt;/p&gt;
&lt;p&gt;关键要素：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;要素&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;th&gt;示例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;角色设定&lt;/td&gt;
 &lt;td&gt;锚定模型的专业视角&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;你是一个资深 Go 工程师&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;任务描述&lt;/td&gt;
 &lt;td&gt;明确要做什么&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;分析以下代码的性能问题&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;上下文&lt;/td&gt;
 &lt;td&gt;提供必要背景信息&lt;/td&gt;
 &lt;td&gt;代码片段、业务场景&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;约束条件&lt;/td&gt;
 &lt;td&gt;限制输出格式和范围&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;只输出 JSON，不要解释&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;示例&lt;/td&gt;
 &lt;td&gt;Few-shot 示范期望输出&lt;/td&gt;
 &lt;td&gt;输入输出对&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;核心原理：模型基于 Prompt 在训练分布中找到最匹配的模式，生成概率最高的续写文本。&lt;/p&gt;
&lt;div class="mermaid"&gt;
graph LR
A[用户意图] --&gt; B[Prompt 编码]
B --&gt; C[LLM 推理]
C --&gt; D[输出文本]
D --&gt; E{验证}
E --&gt;|不满足| F[迭代 Prompt]
F --&gt; B
E --&gt;|满足| G[最终结果]

&lt;/div&gt;

&lt;h2 id="prompt-结构模板"&gt;
 Prompt 结构模板
 &lt;a class="heading-link" href="#prompt-%e7%bb%93%e6%9e%84%e6%a8%a1%e6%9d%bf"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;一个高质量的 Prompt 遵循以下结构：&lt;/p&gt;</description></item><item><title>Open Claw</title><link>https://jinnchang.github.io/posts/open-claw/</link><pubDate>Thu, 05 Mar 2026 09:05:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/open-claw/</guid><description>&lt;blockquote&gt;
&lt;p&gt;自托管、开源的 AI Agent 网关，让大模型真正执行现实任务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;OpenClaw 是一个运行在本地的 AI Agent 框架，由 Peter Steinberger 创建（历经 Clawd → Clawdbot → Moltbot 改名，最终定名 OpenClaw）。与 ChatGPT 等对话式 AI 不同，OpenClaw 不是一个被动回答问题的大模型——它是一个&lt;strong&gt;主动执行任务&lt;/strong&gt;的 Agent 网关。&lt;/p&gt;
&lt;div class="mermaid"&gt;
graph TD
WA["WhatsApp"] --&gt; GW
TG["Telegram"] --&gt; GW
SL["Slack"] --&gt; GW
GW["OpenClaw Gateway&lt;br/&gt;本地 :18789"] --&gt; AG["Agent&lt;br/&gt;workspace + model router + tools"]
AG --&gt; LLM["Claude / GPT / Gemini"]

&lt;/div&gt;

&lt;p&gt;三个关键能力让 OpenClaw 区别于普通聊天工具：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;持久记忆&lt;/strong&gt;：Agent 记住历史交互，跨会话保持上下文&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;真实计算机访问&lt;/strong&gt;：读写文件、执行命令、调用 API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多通道统一&lt;/strong&gt;：WhatsApp、Telegram、Slack、Discord、Signal、iMessage、WebChat 全部接入同一个 Gateway&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="安装配置"&gt;
 安装配置
 &lt;a class="heading-link" href="#%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;OpenClaw 使用交互式引导完成初始设置：&lt;/p&gt;</description></item><item><title>Model Context Protocol</title><link>https://jinnchang.github.io/posts/mcp/</link><pubDate>Fri, 20 Feb 2026 10:40:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/mcp/</guid><description>&lt;blockquote&gt;
&lt;p&gt;MCP 是大模型与外部系统之间的标准化接口协议，让 AI 应用可以像 USB 设备一样即插即用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;你在 Claude Code 中使用 skill、调用外部工具时，底层就是 MCP 在通信。&lt;/p&gt;
&lt;p&gt;MCP 定义了三类角色：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Host&lt;/strong&gt; — 运行大模型的宿主程序，如 Claude Desktop、IDE 插件、自定义 AI 应用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client&lt;/strong&gt; — 嵌入 Host 的 MCP 客户端，负责与 Server 建立连接、发送请求、管理生命周期。Host 可以包含多个 Client，每个 Client 连接一个 Server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server&lt;/strong&gt; — 暴露能力给大模型的服务端，提供三种核心资源：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt; — 可执行操作（API 调用、数据库查询、文件读写）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Resources&lt;/strong&gt; — 只读数据源（文件、日志、配置）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prompts&lt;/strong&gt; — 预置模板（快速构造结构化输入）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;传输层支持两种协议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;stdio&lt;/strong&gt; — 本地进程通信，通过标准输入/输出传递 JSON-RPC 消息&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSE（Server-Sent Events）&lt;/strong&gt; — 远程 HTTP 通信，适合跨网络场景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;协议层统一使用 &lt;strong&gt;JSON-RPC 2.0&lt;/strong&gt; 格式，确保不同语言、不同平台的实现可以互操作。&lt;/p&gt;</description></item><item><title>Large Language Model</title><link>https://jinnchang.github.io/posts/large-model/</link><pubDate>Sun, 15 Feb 2026 15:25:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/large-model/</guid><description>&lt;h2 id="openai"&gt;
 OpenAI
 &lt;a class="heading-link" href="#openai"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模型&lt;/th&gt;
 &lt;th&gt;更新&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT-5.4&lt;/td&gt;
 &lt;td&gt;2026-03-05&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT‑5.3 Instant&lt;/td&gt;
 &lt;td&gt;2026-03-03&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT‑5.3‑Codex‑Spark&lt;/td&gt;
 &lt;td&gt;2026-02-12&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT‑5.3-Codex&lt;/td&gt;
 &lt;td&gt;2026-02-05&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;GPT Image 1.5&lt;/td&gt;
 &lt;td&gt;2025-12-16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Sora 2&lt;/td&gt;
 &lt;td&gt;2025-09-30&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenAI o3&lt;/td&gt;
 &lt;td&gt;2025-04-16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenAI o4-mini&lt;/td&gt;
 &lt;td&gt;2025-04-16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="https://openai.com/research/index/release/" class="external-link" target="_blank" rel="noopener"&gt;https://openai.com/research/index/release/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="google"&gt;
 Google
 &lt;a class="heading-link" href="#google"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;模型&lt;/th&gt;
 &lt;th&gt;更新&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 3.1 Flash-Lite&lt;/td&gt;
 &lt;td&gt;2026-03-03&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 3.1 Flash Image&lt;/td&gt;
 &lt;td&gt;2026-02-26&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 3.1 Pro&lt;/td&gt;
 &lt;td&gt;2026-02-19&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Lyria 3&lt;/td&gt;
 &lt;td&gt;2026-02-18&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Veo 3&lt;/td&gt;
 &lt;td&gt;2025-02-18&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Imagen 4&lt;/td&gt;
 &lt;td&gt;2025-05-20&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemma 3&lt;/td&gt;
 &lt;td&gt;2025-08-14&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="https://deepmind.google/models/model-cards/" class="external-link" target="_blank" rel="noopener"&gt;https://deepmind.google/models/model-cards/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>LangChain</title><link>https://jinnchang.github.io/posts/lang-chain/</link><pubDate>Tue, 10 Feb 2026 20:10:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/lang-chain/</guid><description>&lt;blockquote&gt;
&lt;p&gt;基于大语言模型的应用开发框架，用声明式链式编排将 Prompt、模型、工具和数据源组装成可用的 AI 应用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;LangChain 的核心思想是把构建 LLM 应用的常见环节抽象成&lt;strong&gt;可组合的模块&lt;/strong&gt;。2025 年官方发布 1.0 alpha 后，API 进入稳定期，2026 年已全面进入 &lt;strong&gt;1.x&lt;/strong&gt; 时代。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jinnchang.github.io/posts/lang-chain/lang-chain.avif" alt="LangChain 架构"&gt;&lt;/p&gt;
&lt;p&gt;关键概念：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;概念&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;LCEL&lt;/strong&gt;（LangChain Expression Language）&lt;/td&gt;
 &lt;td&gt;声明式语法组合链，所有组件都是 Runnable，可通过 &lt;code&gt;|&lt;/code&gt; 串联&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Prompt Templates&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;参数化模板，解耦提示词内容与代码逻辑&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Chat Models&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;统一的模型接口，OpenAI、Anthropic、本地模型均适配&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Tools &amp;amp; Tool Calling&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;模型可主动调用的外部函数，实现搜索、数据库查询等操作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Structured Output&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;强制模型按指定 JSON Schema 输出，2026 重点方向&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;LangGraph&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;基于状态图的 Agent 编排框架，支持持久化、流式、人在回路&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;架构关系：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;langchain-core → 抽象基类（Runnables, Messages, Prompts）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;langchain → 集成层（各厂商模型、向量库、工具）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;langgraph → Agent 编排（图结构、状态机）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="安装配置"&gt;
 安装配置
 &lt;a class="heading-link" href="#%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install &lt;span class="s2"&gt;&amp;#34;langchain&amp;gt;=1.3&amp;#34;&lt;/span&gt; langchain-openai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;核心库与集成包分离安装。使用 OpenAI 模型需额外安装 &lt;code&gt;langchain-openai&lt;/code&gt;，使用其他提供商安装对应包即可。&lt;/p&gt;</description></item><item><title>Function Calling</title><link>https://jinnchang.github.io/posts/function-calling/</link><pubDate>Sun, 01 Feb 2026 13:30:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/function-calling/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Function Calling 是大语言模型从&amp;quot;对话&amp;quot;走向&amp;quot;行动&amp;quot;的关键桥梁——让模型能调用外部工具，而非仅生成文本。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Function Calling&lt;/strong&gt;（函数调用）是一种机制：模型不再只返回文本回复，而是返回&lt;strong&gt;结构化的工具调用请求&lt;/strong&gt;，由客户端程序执行后将结果回传给模型，最终由模型生成面向用户的自然语言回复。&lt;/p&gt;
&lt;p&gt;三个关键术语：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;术语&lt;/th&gt;
 &lt;th&gt;含义&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Tool Definition&lt;/td&gt;
 &lt;td&gt;工具定义，描述函数名、参数类型和用途&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tool Call&lt;/td&gt;
 &lt;td&gt;模型返回的工具调用请求，包含函数名和参数值&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tool Result&lt;/td&gt;
 &lt;td&gt;客户端执行函数后返回的结果&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心要点：模型不执行代码，只决定调用哪个工具、传入什么参数。&lt;/strong&gt; 真正的函数调用发生在你的代码中。&lt;/p&gt;
&lt;h2 id="为什么需要-function-calling"&gt;
 为什么需要 Function Calling
 &lt;a class="heading-link" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81-function-calling"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;传统聊天 API 的本质是&amp;quot;基于训练数据的文本生成&amp;quot;。这意味着它有三个天然局限：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;无法获取实时数据&lt;/strong&gt; —— 模型不知道今天的天气&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无法操作外部系统&lt;/strong&gt; —— 模型无法帮你发邮件、查数据库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;无法保证输出格式&lt;/strong&gt; —— 即使要求 JSON，模型也可能输出错误格式&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="对比prompt-硬编码-vs-function-calling"&gt;
 对比：Prompt 硬编码 vs Function Calling
 &lt;a class="heading-link" href="#%e5%af%b9%e6%af%94prompt-%e7%a1%ac%e7%bc%96%e7%a0%81-vs-function-calling"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;以&amp;quot;用户问明天北京天气&amp;quot;为例。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prompt 硬编码方式&lt;/strong&gt;：在 prompt 中让模型输出 JSON，然后你解析。&lt;/p&gt;</description></item><item><title>Agent Skills</title><link>https://jinnchang.github.io/posts/agent-skills/</link><pubDate>Sat, 10 Jan 2026 10:30:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/agent-skills/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Anthropic 推出的开放标准，让 AI Agent 以模块化方式扩展能力——一次编写，随处部署。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;h3 id="为什么需要-agent-skills"&gt;
 为什么需要 Agent Skills
 &lt;a class="heading-link" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81-agent-skills"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;MCP（Model Context Protocol）解决了 Agent 如何接入外部工具的问题，但它不负责定义&amp;quot;Agent 本身应该具备什么能力&amp;quot;。Agent Skills 填补了这一空白：它将&lt;strong&gt;特定领域的知识、工作流和最佳实践&lt;/strong&gt;打包成可复用的模块，使通用 Agent 能够快速转变为专业角色。&lt;/p&gt;
&lt;p&gt;打个比方：MCP 是 Agent 的 USB 接口，Agent Skills 是 Agent 的职业资格证书。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://jinnchang.github.io/posts/agent-skills/agent-skills-vm-overview.webp" alt="Agent Skills 架构"&gt;&lt;/p&gt;
&lt;h3 id="skillmd技能的核心载体"&gt;
 SKILL.md：技能的核心载体
 &lt;a class="heading-link" href="#skillmd%e6%8a%80%e8%83%bd%e7%9a%84%e6%a0%b8%e5%bf%83%e8%bd%bd%e4%bd%93"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://jinnchang.github.io/posts/agent-skills/simple-skill-md-structure.webp" alt="SKILL.md 结构"&gt;&lt;/p&gt;
&lt;p&gt;一个 Skill 本质上是一个包含 &lt;code&gt;SKILL.md&lt;/code&gt; 文件的目录。&lt;code&gt;SKILL.md&lt;/code&gt; 由 YAML frontmatter 和 Markdown 正文组成：&lt;/p&gt;</description></item><item><title>Agent-to-Agent Protocol</title><link>https://jinnchang.github.io/posts/a2a/</link><pubDate>Mon, 05 Jan 2026 09:00:00 +0800</pubDate><guid>https://jinnchang.github.io/posts/a2a/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Google 推出的开放协议，让不同框架、不同厂商的 AI Agent 能够互相通信与协作，堪称 AI Agent 世界的 HTTP。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="核心概念"&gt;
 核心概念
 &lt;a class="heading-link" href="#%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;2025 是单 Agent 之年，2026 是多 Agent 之年。当多个 Agent 需要协同工作时，一个标准化的通信协议必不可少。A2A（Agent-to-Agent Protocol）应运而生。&lt;/p&gt;
&lt;h3 id="a2a-vs-mcp"&gt;
 A2A vs MCP
 &lt;a class="heading-link" href="#a2a-vs-mcp"&gt;
 &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;
 &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;
 &lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://jinnchang.github.io/posts/a2a/a2a-mcp-readme.png" alt="A2A vs MCP"&gt;&lt;/p&gt;
&lt;p&gt;理解 A2A 最快的方式是把它和已经普及的 MCP 对照：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;维度&lt;/th&gt;
 &lt;th&gt;MCP&lt;/th&gt;
 &lt;th&gt;A2A&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;连接对象&lt;/td&gt;
 &lt;td&gt;Agent ↔ 工具/数据源&lt;/td&gt;
 &lt;td&gt;Agent ↔ Agent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;通信模型&lt;/td&gt;
 &lt;td&gt;同步请求-响应&lt;/td&gt;
 &lt;td&gt;同步 + 异步流式&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;典型场景&lt;/td&gt;
 &lt;td&gt;Agent 调用搜索、数据库、API&lt;/td&gt;
 &lt;td&gt;旅行 Agent 向酒店 Agent 发起预订&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;协议基础&lt;/td&gt;
 &lt;td&gt;JSON-RPC&lt;/td&gt;
 &lt;td&gt;JSON-RPC 2.0 over HTTP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一句话：&lt;strong&gt;MCP 让 Agent 使用工具，A2A 让 Agent 之间对话。&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>