ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零构建模拟智能体:基于LangChain与GitHub API的工程实践

从零构建模拟智能体:基于LangChain与GitHub API的工程实践 最近AI 圈子里“模拟智能体”这个词突然火了起来。从社交媒体上的趣味玩梗到技术社区里严肃的架构讨论似乎一夜之间人人都开始谈论如何让 AI 扮演一个角色去完成一系列任务。但热闹背后很多开发者其实有点懵这和我们之前用的聊天机器人、代码助手到底有什么区别它真的能解决实际问题还是又一个被过度炒作的“新瓶装旧酒”如果你也好奇并且想知道如何亲手搭建一个能真正干活的“模拟智能体”而不是停留在概念层面那么这篇文章就是为你准备的。我们将从一个核心判断开始模拟智能体的本质不是让 AI 变得更“聪明”而是通过一套工程化的“行为框架”让 AI 的“思考”过程变得可预测、可引导、可复用从而解决传统单次问答无法处理的复杂、多步骤任务。本文将带你从“玩梗”走向“严肃”。我们不会空谈趋势而是会深入其核心架构并用一个完整的代码示例手把手教你构建一个能自动分析 GitHub 仓库、生成技术报告的基础模拟智能体。你会理解它的工作原理、掌握搭建方法、避开初期常见的坑并最终获得一个可以扩展的、能真正嵌入到你工作流中的工具。1. 模拟智能体从“聊天”到“做事”的范式转变要理解模拟智能体为何重要首先要看清传统 AI 交互的局限性。无论是 ChatGPT 还是 Claude我们习惯的模式是输入一个问题得到一个答案。这种“单轮问答”在处理“帮我写个排序函数”或“解释下 RESTful API”时非常高效。但当我们面对更复杂的场景时这种模式就力不从心了。例如场景一“帮我分析一下这个开源项目spring-projects/spring-boot最近三个月的 Issue 趋势找出最常见的 bug 类型并写一份简要的代码改进建议。”场景二“我需要为下周的团队技术分享准备材料主题是‘微服务链路追踪’。请去网上在授权和合规范围内搜集最新的三篇高质量技术文章、两个相关的开源工具Star 1k并整理出一个包含核心概念和对比表格的 PPT 大纲。”你会发现这些问题无法通过一次提问解决。它们需要 AI 执行一系列动作理解任务、拆解步骤、执行子任务如调用 API 获取数据、进行信息检索与分析、整合中间结果、最终生成交付物。这个过程是动态的、有状态的并且可能涉及工具的使用。这就是模拟智能体要解决的核心问题为 AI 赋予一个可持续的“执行上下文”和“行动能力”。它不再是一个被动的应答者而是一个主动的“执行者”。你可以把它想象成一个配备了标准化操作程序SOP和一系列专业工具API、搜索引擎、代码解释器的虚拟员工。从“玩梗”到“严肃”的跨越关键在于认识到这背后是一套工程问题而不仅仅是提示词Prompt技巧。它涉及规划与决策如何将模糊的目标拆解为清晰的步骤链。工具使用如何安全、可靠地调用外部能力如浏览器、计算器、数据库。记忆与状态管理如何在多轮交互中记住历史、维持目标。容错与反思当某一步失败时如何调整策略或重试。理解了这一点我们就能抛开浮夸的营销术语从技术架构的层面来审视它。2. 核心架构剖析智能体、工具与工作流的协同一个典型的模拟智能体系统通常由几个核心组件构成。理解这些组件是进行任何实践的前提。2.1 智能体Agent决策与调度中心智能体是系统的大脑。它的核心职责是理解用户意图解析用户的自然语言指令。任务规划将宏观目标分解为可执行的原子任务序列。工具调度决定在哪个步骤使用哪个工具并生成正确的调用参数。结果整合与决策根据工具执行的结果决定下一步是继续、重试还是结束任务。目前主流框架如 LangChain、LlamaIndex、AutoGen中的智能体其核心通常是一个大语言模型LLM配合一个固定的“思考-行动-观察”循环ReAct 模式是其典型代表。2.2 工具Tools智能体的“手脚”工具是智能体与外部世界交互的接口。一个工具本质上是一个函数它有名称和描述用自然语言告诉 LLM 这个工具是干什么的。输入参数定义调用时需要提供哪些信息。执行逻辑具体的代码实现可以是调用一个 API、执行一段计算、查询数据库等。例如web_search(query): 执行网络搜索。python_repl(code): 在一个安全沙箱中运行 Python 代码。get_github_issues(owner, repo, state): 调用 GitHub API 获取 Issue 列表。关键点工具的设计质量直接决定了智能体的能力上限。好的工具应该是原子化的、功能单一的、具有清晰错误处理的。2.3 工作流Workflow与记忆Memory工作流定义了智能体完成任务的标准流程。最简单的就是 ReAct 循环复杂的可能包含并行执行、条件分支、循环等。记忆分为短期记忆当前会话的上下文和长期记忆向量数据库存储的历史经验。记忆让智能体不会“遗忘”之前步骤的结论是实现多步骤协作的基础。2.4 与传统聊天机器人的对比为了更清晰我们用表格对比一下特性传统聊天机器人 / 单轮问答模拟智能体交互模式一问一答无状态多轮协作有状态围绕一个目标持续交互任务复杂度简单、原子性任务复杂、多步骤、需要规划的任务核心能力语言理解与生成规划、工具调用、状态管理、反思输出一次性的文本回复可能是结构化数据、文件、或一系列动作的结果类比一个博学的顾问随时回答你的问题一个配备了工具箱和任务清单的虚拟助手能替你执行项目3. 环境准备构建你的第一个智能体实验室理论讲完了我们开始动手。为了构建和运行一个模拟智能体你需要准备以下环境。本文将以Python和LangChain框架为例因为它生态成熟、文档丰富最适合快速入门。3.1 基础环境操作系统macOS / Linux / Windows (WSL2 推荐)。Python 版本 3.8。建议使用 3.9 或 3.10 以获得最佳兼容性。包管理工具pip或conda。3.2 核心依赖安装我们创建一个新的虚拟环境来管理依赖避免污染全局环境。# 1. 创建并激活虚拟环境 (以 conda 为例也可使用 venv) conda create -n ai-agent python3.10 conda activate ai-agent # 2. 安装 LangChain 及其社区工具包 pip install langchain langchain-community # 3. 安装 OpenAI 库我们将使用 GPT 作为智能体的“大脑” pip install openai # 4. 安装用于网页内容提取的库为后续示例准备 pip install requests beautifulsoup4 # 5. 安装环境变量管理库方便管理 API Key pip install python-dotenv3.3 配置 API 密钥模拟智能体需要一个大语言模型作为核心。这里我们使用 OpenAI 的 GPT 模型。你需要在 OpenAI Platform 获取一个 API Key。在项目根目录创建一个.env文件来安全地存储密钥# .env 文件内容 OPENAI_API_KEY你的实际API密钥重要安全提醒永远不要将.env文件提交到 Git 等版本控制系统。确保它在.gitignore中。本文所有代码都从环境变量读取密钥这是生产环境的最佳实践。3.4 验证环境创建一个简单的 Python 脚本测试环境和 API 连通性。# test_env.py import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI # 加载 .env 文件中的环境变量 load_dotenv() # 初始化 LLM llm ChatOpenAI(modelgpt-3.5-turbo, temperature0) # 进行一次简单对话 response llm.invoke(你好请用一句话介绍你自己。) print(response.content)运行脚本python test_env.py如果看到类似“我是 OpenAI 训练的 AI 助手……”的回复说明环境配置成功。4. 构建核心定义工具与创建智能体现在我们来构建一个具有实际功能的智能体。我们的目标是创建一个能分析指定 GitHub 仓库最近 Open Issue 的智能体。它会完成“获取数据 - 分析 - 总结”的流程。4.1 第一步创建自定义工具我们需要一个能调用 GitHub API 的工具。由于 LangChain 社区可能没有现成的精确工具我们来自定义一个。# tools/github_tool.py import os import requests from typing import Optional, Dict, Any from langchain.tools import BaseTool from pydantic import Field, BaseModel class GitHubRepoIssuesInput(BaseModel): GitHub 仓库 Issue 查询工具的输入模型。 owner: str Field(descriptionGitHub 仓库的所有者例如spring-projects) repo: str Field(descriptionGitHub 仓库的名称例如spring-boot) state: str Field(defaultopen, descriptionIssue 状态可选 open, closed, all。默认为 open) per_page: int Field(default10, description每页返回的数量最多 100。默认为 10) class GitHubRepoIssuesTool(BaseTool): name get_github_repo_issues description 获取指定 GitHub 仓库的 Issue 列表。输入需要包含仓库所有者和仓库名。 args_schema GitHubRepoIssuesInput return_direct: bool False # 工具执行后结果会返回给智能体继续处理 def _run(self, owner: str, repo: str, state: str open, per_page: int 10) - str: 执行工具的核心逻辑调用 GitHub REST API。 url fhttps://api.github.com/repos/{owner}/{repo}/issues headers { Accept: application/vnd.github.v3json, } # 可以添加认证头以提升速率限制非必须 # token os.getenv(GITHUB_TOKEN) # if token: # headers[Authorization] ftoken {token} params { state: state, per_page: per_page, page: 1 } try: response requests.get(url, headersheaders, paramsparams, timeout10) response.raise_for_status() # 如果状态码不是 200抛出异常 issues response.json() except requests.exceptions.RequestException as e: return f调用 GitHub API 失败{str(e)} except ValueError as e: return f解析 JSON 响应失败{str(e)} if not issues: return f仓库 {owner}/{repo} 没有找到 {state} 状态的 Issue。 # 格式化输出便于 LLM 理解 formatted_issues [] for issue in issues[:5]: # 只取前5条展示避免上下文过长 formatted_issues.append({ number: issue.get(number), title: issue.get(title), state: issue.get(state), created_at: issue.get(created_at), user: issue.get(user, {}).get(login), url: issue.get(html_url) }) return f成功获取到仓库 {owner}/{repo} 的 {state} Issue共 {len(issues)} 条。前5条如下\n{formatted_issues} async def _arun(self, *args: Any, **kwargs: Any) - str: 异步执行本例暂不实现。 raise NotImplementedError(此工具不支持异步调用。)代码解释我们定义了输入模型GitHubRepoIssuesInput使用 Pydantic 来规范化和描述输入参数。这能帮助 LLM 更好地理解如何调用这个工具。GitHubRepoIssuesTool继承自BaseTool必须实现_run方法。在_run中我们构造 GitHub API 的 URL 并发起请求。对返回的 JSON 数据进行解析和格式化提取关键信息并以结构化的文本返回。这个返回的文本将成为 LLM 进行下一步推理的上下文。4.2 第二步创建智能体执行器我们将使用 LangChain 的create_react_agent来构建一个遵循 ReAct 模式的智能体。# agent_builder.py import os from dotenv import load_dotenv from langchain import hub from langchain.agents import create_react_agent, AgentExecutor from langchain_openai import ChatOpenAI from tools.github_tool import GitHubRepoIssuesTool # 加载环境变量 load_dotenv() def build_github_agent(): 构建并返回一个配置了 GitHub 工具的智能体执行器。 # 1. 初始化 LLM智能体的大脑 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0, api_keyos.getenv(OPENAI_API_KEY)) # 2. 准备工具列表 tools [GitHubRepoIssuesTool()] # 3. 从 LangChain Hub 拉取一个优化的 ReAct 提示词模板 # 提示词模板定义了智能体应该如何思考“Thought”、行动“Action”和观察“Observation”。 prompt hub.pull(hwchase17/react) # 4. 创建智能体 agent create_react_agent(llm, tools, prompt) # 5. 创建智能体执行器 # 执行器负责运行智能体管理其与工具和用户的交互循环。 agent_executor AgentExecutor( agentagent, toolstools, verboseTrue, # 设置为 True 可以看到智能体的思考过程调试时非常有用 handle_parsing_errorsTrue, # 处理智能体输出解析错误 max_iterations5, # 限制最大迭代次数防止无限循环 early_stopping_methodgenerate # 当智能体认为任务完成时停止 ) return agent_executor if __name__ __main__: # 测试构建 agent_executor build_github_agent() print(GitHub 仓库分析智能体构建成功)5. 运行与验证让智能体开始工作智能体构建好了现在让我们给它一个任务看看它是如何工作的。5.1 执行一个分析任务创建一个主程序文件来驱动整个流程# main.py from agent_builder import build_github_agent def main(): # 1. 构建智能体 print(正在初始化 GitHub 仓库分析智能体...) agent build_github_agent() # 2. 定义用户查询 # 这是一个复杂的、多步骤意图的查询。 user_query 请帮我分析一下 LangChain 的官方仓库 ‘langchain-ai/langchain’ 最近有哪些新开的 Issue。 列出其中前5个并简要总结一下它们可能属于什么类别例如Bug、功能请求、文档问题等。 print(f\n用户查询{user_query}) print(- * 50) print(智能体开始执行...\n) # 3. 调用智能体执行器 try: result agent.invoke({input: user_query}) print(\n *50) print(最终结果) print(*50) print(result[output]) except Exception as e: print(f\n执行过程中出现错误{e}) if __name__ __main__: main()5.2 观察执行过程与输出运行python main.py。由于我们在AgentExecutor中设置了verboseTrue你将在控制台看到详细的思考过程。这个过程完美诠释了 ReAct 模式用户查询请帮我分析一下 LangChain 的官方仓库 ‘langchain-ai/langchain’ 最近有哪些新开的 Issue... 智能体开始执行... 进入新的 AgentExecutor 链... Thought: 用户想分析 langchain-ai/langchain 仓库的新开 Issue。我需要先获取这些 Issue 列表。 Action: get_github_repo_issues Action Input: {owner: langchain-ai, repo: langchain, state: open, per_page: 10} Observation: 成功获取到仓库 langchain-ai/langchain 的 open Issue共 10 条。前5条如下[{...}, {...}, ...] Thought: 我已经拿到了 Issue 列表。现在需要分析前5个并总结它们的类别。我需要仔细查看这些 Issue 的标题和内容来推断类别。 Action: 我现在有足够的信息来直接回答用户。我将基于 Observation 中的数据进行总结。 Final Answer: 根据获取到的信息仓库 langchain-ai/langchain 最新的 open Issue 前5条如下 1. [#12345] “ChatOpenAI 流式输出时遇到类型错误” - 类别**Bug**。用户报告了在使用特定功能时的异常。 2. [#12344] “希望为 Chroma 向量库添加对元数据过滤的完整支持” - 类别**功能请求**。用户提出了对新特性的需求。 3. [#12343] “文档中 Agents 章节的示例代码无法运行” - 类别**文档问题**。示例代码可能已过时。 4. [#12342] “Memory 模块在分布式环境下存在序列化问题” - 类别**Bug**可能涉及架构。 5. [#12341] “请问如何自定义 Tool 的返回格式” - 类别**疑问/支持**。用户在使用中遇到了困惑。 总结近期 Issue 以 Bug 报告和功能请求为主反映了项目在快速迭代中遇到的稳定性与功能扩展需求。 链结束。过程解析Thought: 智能体理解任务并规划第一步调用工具获取数据。Action/Action Input: 它选择了正确的工具get_github_repo_issues并生成了符合工具输入模型的参数。Observation: 工具执行成功返回了结构化的 Issue 数据。Thought: 智能体评估当前信息认为足以进行下一步分析决定不再调用新工具而是直接利用 LLM 的分析能力。Final Answer: 智能体综合所有信息生成了用户要求的格式列出 Issue 并总结类别。这个流程清晰地展示了智能体如何将模糊的指令“分析 Issue”自动转化为具体的行动序列“调用 API 获取数据 - 分析数据 - 生成报告”。6. 扩展能力为智能体添加更多工具一个工具只能做一件事。要让智能体更强大我们需要给它装备更多“武器”。让我们添加一个计算工具和一个网页摘要工具。6.1 添加 LangChain 内置计算工具# 修改 agent_builder.py 中的工具列表 from langchain.agents import load_tools # ... 其他导入 ... def build_github_agent(): llm ChatOpenAI(modelgpt-3.5-turbo, temperature0) # 加载内置工具 builtin_tools load_tools([llm-math], llmllm) # llm-math 工具让智能体能进行数学计算 # 自定义工具 custom_tools [GitHubRepoIssuesTool()] # 合并工具列表 tools builtin_tools custom_tools prompt hub.pull(hwchase17/react) agent create_react_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, max_iterations7) return agent_executor6.2 创建自定义网页摘要工具# tools/web_summary_tool.py import requests from bs4 import BeautifulSoup from langchain.tools import BaseTool from pydantic import Field, BaseModel from langchain_openai import ChatOpenAI import os from dotenv import load_dotenv load_dotenv() class WebSummaryInput(BaseModel): url: str Field(description需要总结的网页的 URL 地址) class WebSummaryTool(BaseTool): name summarize_webpage description 获取指定URL的网页内容并生成一个简洁的摘要。 args_schema WebSummaryInput def _run(self, url: str) - str: try: # 1. 获取网页内容 headers {User-Agent: Mozilla/5.0} response requests.get(url, headersheaders, timeout10) response.raise_for_status() soup BeautifulSoup(response.content, html.parser) # 2. 提取主要文本简单示例实际应用可能需要更复杂的清洗 for script in soup([script, style, nav, footer]): script.decompose() text soup.get_text() lines (line.strip() for line in text.splitlines()) chunks (phrase.strip() for line in lines for phrase in line.split( )) text .join(chunk for chunk in chunks if chunk) text text[:3000] # 限制长度避免超出 LLM 上下文 if not text: return 未能从该网页提取出有效文本内容。 # 3. 使用 LLM 进行摘要 llm ChatOpenAI(modelgpt-3.5-turbo, temperature0, api_keyos.getenv(OPENAI_API_KEY)) summary_prompt f 请对以下网页内容进行摘要要求 1. 用中文输出。 2. 提炼核心观点不超过200字。 3. 如果内容涉及技术请突出其技术要点。 网页内容 {text} summary llm.invoke(summary_prompt) return f网页 {url} 的摘要如下\n{summary.content} except requests.exceptions.RequestException as e: return f获取网页失败{str(e)} except Exception as e: return f处理网页内容时发生错误{str(e)} async def _arun(self, *args, **kwargs): raise NotImplementedError然后在agent_builder.py中导入并添加这个新工具from tools.web_summary_tool import WebSummaryTool # ... 在 tools 列表中添加 WebSummaryTool() ...现在你的智能体可以处理更复杂的指令例如“先去 GitHub 看看 LangChain 仓库最热的 Issue 是什么然后计算一下如果每天解决 3 个需要多少天解决前 100 个 open issue最后去总结一下 LangChain 官方博客的最新文章。”7. 常见问题与排查思路在构建和运行模拟智能体时你一定会遇到各种问题。以下是典型问题及其解决方法。问题现象可能原因排查方式解决方案智能体陷入循环不断重复相同动作1. 提示词Prompt未能清晰定义终止条件。2. 工具返回的结果格式让 LLM 无法理解导致它认为任务未完成。3.max_iterations设置过高。1. 查看verbose日志观察Thought部分是否逻辑混乱。2. 检查工具返回的Observation是否清晰、结构化。1. 优化提示词明确加入“当你拥有足够信息时请直接给出最终答案”的指令。2. 优化工具输出使其更简洁、关键信息突出。3. 适当降低max_iterations如设为 5-10。智能体选择了错误的工具或工具调用参数错误1. 工具的描述description不够准确。2. 工具的输入模型args_schema描述不清。3. LLM 的temperature参数过高导致输出不稳定。1. 仔细阅读出错的Action Input看参数是否匹配工具定义。2. 检查工具描述是否能让 LLM 准确区分不同工具。1. 重写工具描述明确其功能、输入和输出。2. 在args_schema中使用更详细的Field(description...)。3. 将 LLM 的temperature设为 0 以获得更确定性的输出。API 调用失败如 GitHub API 限速1. 未授权或令牌失效。2. 请求频率超限。3. 网络问题。1. 查看错误信息确认是否是 401/403/429 状态码。2. 在代码中加入更详细的异常捕获和日志。1. 如需更高限额使用 GitHub Token 并添加到请求头。2. 在工具代码中加入重试逻辑和延迟。3. 使用try...except包裹 API 调用返回友好的错误信息给 LLM。智能体输出“我无法完成此任务”或无关内容1. 任务超出智能体能力范围如需要实时信息但未提供搜索工具。2. 初始用户查询过于模糊。3. LLM 上下文窗口不足丢失了关键指令。1. 分析用户查询看是否需要额外工具。2. 检查verbose日志中最初的Thought看是否误解了意图。1. 为用户查询提供更明确的上下文或示例。2. 考虑使用更强大的模型如 GPT-4。3. 在系统提示词中强化智能体的角色和职责。运行速度很慢1. 每次迭代都需要调用 LLM网络延迟累积。2. 工具本身执行慢如网络请求。3. 迭代次数过多。1. 使用verbose模式查看每一步耗时。2. 对工具进行性能分析。1. 考虑对工具结果进行缓存。2. 优化工具实现例如使用异步请求。3. 严格限制max_iterations。8. 最佳实践与工程化建议将模拟智能体从玩具变为生产可用的工具需要遵循一些工程最佳实践。8.1 工具设计原则单一职责一个工具只做一件事并做好。这能提高可靠性和可复用性。防御性编程工具内部必须进行充分的错误处理网络超时、API 限流、数据解析错误并返回对 LLM 友好的错误信息而不是抛出异常导致智能体崩溃。输入验证与标准化充分利用 Pydantic 模型进行输入验证和类型转换确保传递给工具的数据是干净的。输出格式化工具的返回值应该是清晰的、结构化的文本便于 LLM 解析。可以适当使用 JSON、Markdown 列表等格式。8.2 智能体提示词工程明确系统角色在提示词开头清晰定义智能体的角色、能力和目标。例如“你是一个擅长分析软件开发数据的助手可以调用工具获取 GitHub 信息并进行总结。”定义行动边界明确告诉智能体什么能做什么不能做。例如“你只能使用提供的工具。如果用户请求需要其他能力请礼貌说明。”提供示例在提示词中加入一两个完整的Thought/Action/Observation/Final Answer示例能极大地提升智能体表现。设定终止条件明确告知智能体在什么情况下应该停止思考直接给出最终答案。8.3 生产环境考量成本控制LLM 调用和工具 API 调用都可能产生费用。需要添加监控和限流记录每次交互的 Token 消耗和工具调用次数。可观测性必须记录完整的执行轨迹包括所有的 Thought, Action, Observation这对于调试、优化和审计至关重要。安全性工具权限隔离为智能体配备的工具应遵循最小权限原则。例如一个只读分析智能体不应拥有删除数据库的工具。用户输入净化防止用户输入被直接拼接成工具参数导致注入攻击。内容过滤对智能体生成的内容进行必要的安全性和合规性检查。稳定性智能体可能产生不可预测的输出。在生产环境中应对关键操作如写数据库、发送邮件设置“人工确认”环节或采用更保守的“规划-审批-执行”模式。8.4 测试与评估如何判断你的智能体是否“好用”不能只靠感觉。单元测试工具为每个工具编写独立的单元测试模拟各种正常和异常输入。集成测试工作流针对常见的用户查询编写端到端的测试用例验证智能体能否正确完成整个流程。评估指标定义成功率、平均完成步数、工具调用准确率等指标进行量化评估。9. 总结从实验到实践的关键一步通过以上的拆解和实践我们已经将一个“模拟智能体”从社交媒体上的概念梗变成了一个可以在你本地运行、具有明确功能和清晰架构的代码实体。这个过程的核心收获在于第一模拟智能体的价值在于将 LLM 的认知能力与程序化的行动能力相结合从而自动化那些需要“判断-执行-再判断”的复杂流程。它不再是简单的聊天而是向“数字员工”迈进了一步。第二构建智能体的核心是“工具化”思维。你的重点不是去微调一个无所不能的 LLM而是设计一套原子化的、可靠的工具并教会 LLM 如何恰当地组合使用它们。这更像是在编写一种“元程序”。第三工程化是严肃应用的前提。玩梗可以只关注效果但真要用于实践就必须考虑错误处理、状态管理、安全性、成本和可观测性。本文提供的代码示例和最佳实践正是为了帮你跨过从实验到实践的门槛。下一步你可以做什么丰富工具库尝试集成更多 API如 Jira、Confluence、数据库查询、内部业务系统等打造属于你自己领域的专属助手。探索高级框架LangChain 只是起点。可以研究 AutoGen支持多智能体协作、CrewAI面向工作流编排等框架它们提供了更强大的模式和抽象。优化提示词与工作流尝试不同的提示词策略如 Chain of Thought, Self-Refine和工作流模式如 Plan-and-Execute以解决更复杂的任务。连接现实世界将智能体与你日常的开发工具IDE、命令行、CI/CD 管道结合让它真正成为提升你工作效率的伙伴。模拟智能体技术仍在快速演进但它的核心思想——让 AI 系统具备规划和使用工具的能力以完成复杂目标——已经清晰。现在你不仅理解了它还拥有了亲手实现它的能力。建议收藏本文并将其作为你探索智能体世界的第一个可运行、可修改的起点。当你下次再听到有人谈论“智能体”时你大可以打开终端运行起你自己的智能体看看它如何为你工作。
返回列表