AI Agent

AI Agent AI Agent(人工智能代理)是一个能够感知环境、自主决策并采取行动以完成目标的软件系统。 与普通程序不同,AI Agent 的核心特征是自主性:它不只是被动地响应单次输入,而是能够: 制定多步骤计划 调用外部工具(搜索、代码执行、API 调用等) 根据执行结果动态调整策略 持续循环直到目标完成 AI Agent 的定义 从学术角度,Agent 的经典定义来自 Russell & Norvig(《人工智能:一种现代方法》): Agent 是任何能够通过传感器感知环境、并通过执行器对环境采取行动的事物。 在 LLM 时代,AI Agent 的定义更具体: AI Agent 是以大语言模型为核心推理引擎,能够自主规划任务、调用工具、与外部系统交互,并通过反馈循环完成复杂目标的自治系统。 Agent 的四个核心要素 要素 说明 感知(Perception) 接收输入:多模态用户指令、工具返回结果、系统状态、历史记忆 规划(Planning) 将目标分解为可执行的子任务序列 行动(Action) 调用工具、执行代码、调用 API、操作文件等 记忆(Memory) 短期记忆(上下文窗口)+ 长期记忆(向量数据库等) 感知的来源 感知不只是用户输入那一句话,Agent 每次推理前收到的完整上下文都属于"感知": 来源 说明 多模态输入 用户的文本指令(最常见)、图片、音频、视频等 工具返回结果 搜索结果、API 响应、代码执行输出、数据库查询结果 系统状态 文件内容、环境变量、当前任务进度 历史记忆 短期记忆(上下文窗口中的对话历史)+ 长期记忆(从向量数据库检索) 这四类来源最终都会被拼装进 LLM 的上下文窗口,LLM 基于这个完整上下文做出下一步决策。因此,感知本质上是构建 LLM 输入上下文的过程。 上下文窗口:感知的硬性约束 能放入上下文的信息量取决于模型的上下文窗口大小(以 token 计): 模型 上下文窗口 GPT-4o 128K tokens Claude 3.5 Sonnet 200K tokens Gemini 1.5 Pro 1M tokens 超出窗口的内容会被截断,因此 Agent 需要主动管理上下文。常见策略如下(各框架实现不一,没有统一标准): ...

2026-04-27 · 4 min · 801 words · -

AI agent development

AI Agent 开发的本质 开发 AI Agent 的核心是将已验证的知识和流程固化成可执行的规则和指令。 具体来说: 知识固化 - 把专家经验、最佳实践、业务规则编码成 Agent 可以遵循的指令 流程自动化 - 将重复性的决策流程转化为确定性的执行步骤 质量保障 - 通过固化的规则确保每次执行的一致性,避免人为疏忽 迭代优化 - 每次发现新问题或更好的做法,就更新这些"固化的知识",Agent 的能力随之提升 本质上是把隐性知识显性化,把经验驱动变成规则驱动。 这也意味着 Agent 的质量上限取决于你固化进去的知识质量。垃圾进,垃圾出;好的经验进,稳定的高质量输出。 为什么需要固化知识 LLM 的知识覆盖面极广,解决同一个问题可能有多条路径,但其中只有少部分是最佳实践。具体输出什么内容,很大程度上取决于提示词的质量。 把已验证的解决方案固化到 Agent 里,能让 Agent 在特定领域有更稳定、更优质的表现——相当于给 LLM 划定了一条"黄金路径",避免它在众多可能性中随机游走。 常用技术栈 编程语言 Python(主流,生态丰富) JavaScript/TypeScript(Web/Node.js Agent) Go、Java(高性能/企业级) 大语言模型与 API OpenAI GPT-4/3.5、Claude、Llama Hugging Face Transformers LangChain、LlamaIndex(Agent 框架) Web 框架与服务 FastAPI、Flask(Python) Express.js(Node.js) Django 数据存储 Redis、MongoDB、PostgreSQL、SQLite 向量数据库:Milvus、Pinecone、Weaviate 消息队列与异步任务 Celery、RabbitMQ、Kafka 容器与部署 Docker、Kubernetes 云服务:AWS、Azure、GCP 前端交互 React、Vue.js WebSocket、RESTful API 其他 Prompt 工程、工具插件系统 OAuth2、JWT(安全认证) 日志与监控:Prometheus、Grafana Python 调用模型方式 AI Agent 用 Python 开发时,可以调用本地模型或云端模型: ...

2026-04-26 · 30 min · 6272 words · -

MCP (Model Context Protocol) 是什么

MCP 是什么 MCP(Model Context Protocol,模型上下文协议)是一个开源标准协议,用于将 AI 应用与外部系统连接起来。 可以把 MCP 理解为 AI 应用的 USB-C 接口。就像 USB-C 为电子设备提供了标准化的连接方式,MCP 为 AI 应用与外部系统的连接提供了统一标准。 有了 MCP,Claude、ChatGPT 等 AI 应用可以连接到: 数据源:本地文件、数据库 工具:搜索引擎、计算器、代码执行环境 工作流:自定义 prompt 模板、业务系统 MCP 解决了什么问题 问题背景 在 MCP 出现之前,每个 AI 应用如果想连接外部工具或数据源,都需要为每种组合单独开发集成代码。这导致: 重复开发:A 工具想接 GitHub,B 工具也想接 GitHub,各自写一套 维护成本高:N 个 AI 应用 × M 个外部工具 = N×M 个集成要维护 互不兼容:为 Claude 写的插件不能直接用在 ChatGPT 上 MCP 的解决方案 MCP 引入了统一的 Client-Server 架构: MCP Server:外部工具/数据源的提供方,按照 MCP 协议暴露能力 MCP Client:AI 应用(如 Claude、VS Code Copilot),按照协议调用 Server 这样只需要: ...

2026-04-25 · 1 min · 167 words · -

Harness Engineering 与状态锚点

什么是 Harness Engineering AI 领域的 Harness Engineering 是一种针对 AI/LLM 应用的测试评估方法论,核心思想是: 构建 eval 套件(评估集)来衡量 AI 输出质量 建立 regression 检测,防止模型更新后效果变差 用数据驱动方式持续改进 prompt 和模型选择 AI 辅助开发的语境下,Harness Engineering 的核心思想是: 用自动化验证手段构建"安全网",让你能放心接受或拒绝 AI 生成的代码,而不是靠人工肉眼审查。 harness engineering 的核心流程是: 需求(Requirements) → 明确要做什么 测试套件(Test Harness) → 先写测试,定义"完成"的标准 实现(Implementation) → 写代码让测试通过 验证(Verification) → 所有测试绿灯 Harness Engineering 是一种以"脚手架优先"为核心思想的软件开发方法,尤其在 AI 辅助开发场景下越来越受到关注。 “Harness”(脚手架/支撑框架)这个词借用自工程领域,在软件中指围绕核心系统搭建的一套结构化支撑层,包括: 明确的文档约定(说明系统当前状态、设计决策) 测试框架和实验入口(可快速验证变更) 状态记录文件(捕捉项目在某个时间点的快照) 接口契约和边界定义 它的目标是让代码库对人和 AI 助手都更"可理解、可修改、可安全演进"。 状态锚点是什么 状态锚点(State Anchor) 是 Harness Engineering 的核心实践之一。 它是一个显式的文档文件(通常命名为 harness-state.md、project-state.md 等),用来在某个时间点精确记录系统的当前状态,就像 Git commit 对代码的作用,它对"上下文"做了一次快照。 ...

2026-04-20 · 3 min · 438 words · -

claude

安装 Claude Code # macOS 用 brew 安装(推荐) brew install --cask claude-code # 或安装最新版 brew install --cask claude-code@latest # 用 npm 安装 npm install -g @anthropic-ai/claude-code 安装 cc-switch(多账号切换工具) brew install --cask cc-switch 安装后从 Launchpad 或用以下命令启动: open -a cc-switch 认证冲突处理 cc-switch 会设置 ANTHROPIC_AUTH_TOKEN 环境变量,若同时存在 claude /login 的 key,启动时会出现: ⚠ Auth conflict: Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (/login managed key) are set. 想用 cc-switch 管理的账号: claude /logout 想用 /login 的 key: ...

2026-04-20 · 1 min · 204 words · -

VS Code Agent Hand Off

Hand Off 是什么 VS Code Copilot Chat 在 Agent 模式下提供 “Hand off a session to another agent” 功能,将当前对话的完整上下文移交给另一个 agent 继续处理。 移交时,接收方 agent 会获得: 完整的对话历史记录 已收集的文件上下文 前一个 agent 的中间结论和工具输出 接收方 agent 可以直接从当前状态继续,而不需要从头重建上下文。 与普通切换 Agent 的区别 普通切换 Hand off 上下文 丢失,重新开始 完整传递 用途 新任务 同一任务的延续 历史记录 不带过去 带上全部历史 为什么要切换 Agent,而不是在主 Agent 里继续? Fan-out 并行(最核心的理由) 主 agent 收集完上下文后,同时把同一份上下文发给多个子 agent 做不同的事: 主 agent 分析完代码库 ├── 子 agent A → 写单元测试 ├── 子 agent B → 写文档 └── 子 agent C → 做安全审查 主 agent 是单线程的,无法并行处理多个子任务。Fan-out 到多个子 agent 是最强的切换理由。 ...

2026-04-03 · 3 min · 598 words · -

LangGraph - 构建状态化 AI 工作流的框架

什么是 LangGraph LangGraph 是 LangChain 生态系统中的一个框架,专门用于构建有状态的、多步骤的 AI 应用程序。它通过图(Graph)的方式来定义和管理复杂的 AI 工作流,让开发者能够创建具有循环、条件分支和持久化状态的智能体系统。 LangGraph 的核心理念是将 AI 应用程序建模为状态机,其中节点代表操作步骤,边代表流程控制,状态在节点之间传递和更新。 核心概念 State(状态) State 是在整个工作流中传递和更新的数据结构。通常使用 TypedDict 定义: from typing import TypedDict, Annotated from langgraph.graph import add_messages class AgentState(TypedDict): messages: Annotated[list, add_messages] user_input: str analysis_result: str Node(节点) Node 是执行具体操作的函数,接收当前状态并返回更新后的状态: def research_node(state: AgentState): # 执行研究任务 result = do_research(state['user_input']) return { "analysis_result": result, "messages": [("assistant", f"研究完成:{result}")] } Edge(边) Edge 定义节点之间的连接关系: Normal Edge(普通边):直接连接两个节点 Conditional Edge(条件边):根据状态决定下一个节点 from langgraph.graph import StateGraph, END # 普通边 workflow.add_edge("node_a", "node_b") # 条件边 def should_continue(state): if state['done']: return END return "continue_node" workflow.add_conditional_edges( "decision_node", should_continue ) Graph(图) Graph 是完整的工作流定义,包含所有节点、边和状态管理: from langgraph.graph import StateGraph workflow = StateGraph(AgentState) # 添加节点 workflow.add_node("research", research_node) workflow.add_node("analyze", analyze_node) workflow.add_node("respond", respond_node) # 定义边 workflow.add_edge("research", "analyze") workflow.add_edge("analyze", "respond") # 设置入口点 workflow.set_entry_point("research") # 编译图 app = workflow.compile() 核心特性 1. 状态持久化 LangGraph 支持状态的持久化存储,可以实现: ...

2026-01-18 · 5 min · 975 words · -

CrewAI - 多智能体协作框架

什么是 CrewAI CrewAI 是一个开源的 Python 框架,专门用于构建和管理多智能体(Multi-Agent)系统。它允许开发者创建一个由多个 AI 智能体组成的"团队"(Crew),这些智能体可以协同工作,共同完成复杂的任务。 核心概念 Agent(智能体) Agent 是 CrewAI 中的基本执行单元,代表一个具有特定角色和能力的 AI 助手。每个 Agent 具有: Role(角色):定义 Agent 的身份和职责 Goal(目标):Agent 要达成的目标 Backstory(背景故事):为 Agent 提供上下文和个性 Tools(工具):Agent 可以使用的工具集合 from crewai import Agent researcher = Agent( role='研究员', goal='收集和分析相关信息', backstory='你是一位经验丰富的研究专家,擅长从各种来源收集准确信息', tools=[search_tool, scrape_tool], verbose=True ) Task(任务) Task 定义了需要完成的具体工作,包括: Description(描述):任务的详细说明 Agent:负责执行该任务的智能体 Expected Output(期望输出):任务完成后的预期结果 from crewai import Task research_task = Task( description='研究 AI 领域的最新发展趋势', agent=researcher, expected_output='一份包含最新 AI 趋势的详细报告' ) Crew(团队) Crew 是多个 Agent 和 Task 的组合,负责协调整个工作流程: from crewai import Crew, Process crew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, write_task, review_task], process=Process.sequential # 顺序执行 ) result = crew.kickoff() 执行流程 CrewAI 支持两种执行流程: ...

2026-01-18 · 3 min · 524 words · -

Ollama - 本地大语言模型运行工具

Ollama 简介 Ollama 是一个开源的本地大语言模型运行工具,可以让你在本地轻松运行 Llama 2、Mistral、Qwen 等多种开源大语言模型。 安装 Ollama Linux 安装 # 使用官方安装脚本 curl -fsSL https://ollama.com/install.sh | sh 安装记录 (2025-11-14): 安装版本:v0.12.11 安装位置:/usr/local/bin/ollama 服务配置:已创建 systemd 服务 ollama.service 默认监听:127.0.0.1:11434 GPU 支持:检测到 AMD GPU,安装了 ROCm 支持 用户组:创建了 ollama 用户,并加入 render 和 video 组 自动启动:服务已启用并自动运行 手动安装 # 下载二进制文件 curl -L https://ollama.com/download/ollama-linux-amd64 -o ollama chmod +x ollama sudo mv ollama /usr/local/bin/ 验证安装 # 检查版本 ollama --version # 输出: ollama version is 0.12.11 # 检查服务状态 systemctl status ollama # 测试 API 是否可用 curl http://127.0.0.1:11434/api/version # 输出: {"version":"0.12.11"} 基本使用 启动 Ollama 服务 # 启动服务 ollama serve 拉取模型 # 拉取 Llama 2 模型(7B 参数版本) ollama pull llama2 # 拉取 Mistral 模型 ollama pull mistral # 拉取 Qwen 模型 ollama pull qwen # 拉取 Phi 模型(推荐入门) ollama pull phi 本地已安装模型 (2025-11-14): ...

2025-11-14 · 2 min · 416 words · -

AI

AI AI IDE Microsoft Copilot Cursor Windsurf augment code AI 编程 之前有一种想法,有些小的修改, 比如只有几行代码的修改不需要用 AI, 因为构思提示词的时间往往比直接写代码的时间要长,但是最近这种想法有了一丝松动,AI 写代码出的问题更少一些, 手工改代码很有可能一不小心拷错了,或者敲错字符,AI写码不会有这些小问题,另外 AI 去改的时候会发现一些本来我认为不需要修改的逻辑分支,如果手动修改的话,这些分支只能是等到测试阶段才被发现。

2025-06-03 · 1 min · 19 words · -