济宁网络推广东莞企业seo推广
2026/4/3 5:11:03 网站建设 项目流程
济宁网络推广,东莞企业seo推广,网页设计教育培训,网站建设需要学那些Claude Code是当下最好的Coding Agent#xff0c;甚至可以说是当下最好的Multi-Agent系统。有人认为Anthropic在对Agent的理解上超过了OpenAI。 为了验证上面的观点#xff0c;我整理了一下Anthropic官网发表的8篇Blog#xff0c;希望可以明白Anthropic视角下对Agent的理解。…Claude Code是当下最好的Coding Agent甚至可以说是当下最好的Multi-Agent系统。有人认为Anthropic在对Agent的理解上超过了OpenAI。为了验证上面的观点我整理了一下Anthropic官网发表的8篇Blog希望可以明白Anthropic视角下对Agent的理解。01Contextual Retrieval结合Embedding(RAG)BM25上下文增强和reranking提高检索能力。Introducing Contextual Retrievalwww.anthropic.com/engineering/contextual-retrieval1. RAG的缺陷知识库较小时可以直接放入上下文知识库较大时我们通常会使用RAG。由于RAG基于语义匹配所以它有时候反而会丢失精确匹配的文本。精确匹配常见的算法是BM25(基于TF-IDF, 词频-逆文档频率也就是我们常说的倒排索引结合RAG和BM25可以规避我们上面说的精确匹配结果丢失问题。Anthropic给了一张图对chunks并行做RAG和BM25然后对结果进行合并和去重丢给模型。2. 上下文增强缺乏上下文的RAG通常会丢失一些语义导致RAG效果变差。博客中给了一个例子。原始的chunkoriginal_chunkThe companys revenue grew by 3% over the previous quarter.补充了上下文的chunkcontextualized_chunkThis chunk is from an SEC filing on ACME corps performance in Q2 2023; the previous quarters revenue was $314 million. The companys revenue grew by 3% over the previous quarter.Anthropic的博客中认为为一个孤立的chunk添加相关的上下文以后效果会更好。怎么添加上下文呢——使用Prompt让模型提供chunk的上下文并使用整个文档的上下文来解释该chunk。document {{WHOLE_DOCUMENT}}/documentHere is the chunk we want to situate within the whole document chunk{{CHUNK_CONTENT}}/chunkPlease give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.加入上下文增强以后的流程如下利用Prompt为Chunk添加50-120 token的context3. Rerank在最后的步骤通过重排减少返回的chunk的数量只取前K个块。这里的重排是为了把“最相关”的信息传递给LLMLLM处理的信息更少从而可以提供更相关的结果避免无关信息在上下文的干扰同时降低成本和延迟。4. 思考上下文检索这里除了众所周知的RAG还结合了一些传统的搜索技术。02Build Effective AgentsBuilding effective agentswww.anthropic.com/engineering/building-effective-agents普通调用、workflow、Agent能用单次调用解决就不要用workflow能用workflow解决就不要上Agent。workflow适合固定流程的任务。Agents适合灵活、需要自主决策的任务。2. 构建workflow的几种方式文中提到了几种常见的workflow构建方式Augmented LLMLLM 检索/工具/记忆。Prompt Chaining分步骤处理任务。Routing输入分类分配给不同下游任务。Parallelization任务并行或多次生成投票。Orchestrator-Workers中心 LLM 分解任务子 LLM 执行。Evaluator-Optimizer一个 LLM 生成另一个评估并迭代优化。3. 实现AgentAgent的实现通常很简单——LLM基于环境反馈来循环使用工具。最简Agent实现方式4. 把Agent当成你的用户对LLM来说JSON比markdown更难写与 markdown 相比在 JSON 中编写代码需要额外转义换行符和引号。这里建议在Agent-计算机交互上投入很多精力投入和类似人机交互HCI)设计一样的精力。5. 如何构造好的工具(1)设身处地为Agent着想根据工具的描述和参数能不能快速读懂怎么使用这个工具(2)视角想象为团队内的初级成员编写函数注释(3)Anthropic的博客中还提及他们花在优化工具上的时间比优化整体提示的时间还要多。一个例子在coding agent的构造中发现使用相对路径容易出错因此尽量使用绝对路径。6. 思考这里有个很有趣的视角是把Agent当成你的用户想一下如果你是Agent你能不能理解这些工具是怎么用的我认为这里的假设条件是认为模型本身就具有思考和行动的能力它只是缺乏合适的工具。这里我想到了之前看到的一个观点把LLM当成大二的实习生(https://www.stochasticlifestyle.com/a-guide-to-gen-ai-llm-vibecoding-for-expert-programmers/)他们了解编程的基础知识可以借鉴其他的想法和架构知道如何运行单元测试也知道如何用谷歌搜索。他们上过基础编程课程可能还深入研究过某个高级课程但如果你经常就某个主题进行测试你会发现他们实际上并没有深入学习。可以引申出的是LLM具有一定的自主能力但是缺乏背景信息需要你把背景信息丢给它。但是你也不能把所有信息一股脑地丢给他你应该给他任务相关的、易于阅读的信息然后它就可以协助你完成任务。03SWE-Bench这篇文章主要讲述了Anthropic团队在提高SWE-bench跑分过程中构造Agent的一些经验也有很多可取之处。Raising the bar on SWE-bench Verified with Claude 3.5 Sonnetwww.anthropic.com/engineering/swe-bench-sonnetSWE-Bench是一个AI评估集测试模型如何解决来自热门开源Python代码库的GitHub问题。它可以同时衡量Agents工程化能力和模型性能。1. 轻量脚手架 通用工具 强大模型这篇博客叙述的解决流程中只提供Prompt、Bash Tool 和 Edit Tool让模型自主决定解决流程。Prompt:只给出大致步骤不进行强制和严格的限制让模型可以灵活探索。**Tool:**提供可以执行Bash命令的Bash Tool、可以查看和编辑文件的Edit Tool。Bash Tool执行命令强调使用约束无网络、避免大输出等Edit Tool查看/编辑文件支持view、create、str_replace、insert、undo_edit工具描述经过了大量打磨避免模型误用例如强制使用绝对路径。文件编辑采用字符串替换确保修改唯一性提高可靠性。2. 详细的Prompt与Tool描述Promptuploaded_files{location}/uploaded_filesIve uploaded a python code repository in the directory {location} (not in /tmp/inputs). Consider the following PR description:pr_description{pr_description}/pr_descriptionCan you help me implement the necessary changes to the repository so that the requirements specified in the pr_description are met?Ive already taken care of all changes to any of the test files described in the pr_description. This means you DONT have to modify the testing logic or any of the tests in any way!Your task is to make the minimal changes to non-tests files in the {location} directory to ensure the pr_description is satisfied.Follow these steps to resolve the issue:1. As a first step, it might be a good idea to explore the repo to familiarize yourself with its structure.2. Create a script to reproduce the error and execute it with python filename.py using the BashTool, to confirm the error3. Edit the sourcecode of the repo to resolve the issue4. Rerun your reproduce script and confirm that the error is fixed!5. Think about edgecases and make sure your fix handles them as wellYour thinking should be thorough and so its fine if its very long.Bash Tool{ name: bash, description: Run commands in a bash shell\n* When invoking this tool, the contents of the \command\ parameter does NOT need to be XML-escaped.\n* You dont have access to the internet via this tool.\n* You do have access to a mirror of common linux and python packages via apt and pip.\n* State is persistent across command calls and discussions with the user.\n* To inspect a particular line range of a file, e.g. lines 10-25, try sed -n 10,25p /path/to/the/file.\n* Please avoid commands that may produce a very large amount of output.\n* Please run long lived commands in the background, e.g. sleep 10 or start a server in the background., input_schema: { type: object, properties: { command: { type: string, description: The bash command to run. } }, required: [command]Edit Tool{ name: str_replace_editor, description: Custom editing tool for viewing, creating and editing files\n* State is persistent across command calls and discussions with the user\n* If path is a file, view displays the result of applying cat -n. If path is a directory, view lists non-hidden files and directories up to 2 levels deep\n* The create command cannot be used if the specified path already exists as a file\n* If a command generates a long output, it will be truncated and marked with response clipped \n* The undo_edit command will revert the last edit made to the file at path\n\nNotes for using the str_replace command:\n* The old_str parameter should match EXACTLY one or more consecutive lines from the original file. Be mindful of whitespaces!\n* If the old_str parameter is not unique in the file, the replacement will not be performed. Make sure to include enough context in old_str to make it unique\n* The new_str parameter should contain the edited lines that should replace the old_str,...3. 实际运行的例子(1)说明需要解决的任务uploaded_files/repo/uploaded_filesIve uploaded a python code repository in the directory /repo (not in /tmp/inputs). Consider the following PR description:pr_descriptionlinear_model.RidgeClassifierCVs Parameter store_cv_values issue#### DescriptionParameter store_cv_values error on sklearn.linear_model.RidgeClassifierCV#### Steps/Code to Reproduceimport numpy as npfrom sklearn import linear_model as lm#test databasen 100x np.random.randn(n, 30)y np.random.normal(size n)rr lm.RidgeClassifierCV(alphas np.arange(0.1, 1000, 0.1), normalize True, store_cv_values True).fit(x, y)#### Expected ResultsExpected to get the usual ridge regression model output, keeping the cross validation predictions as attribute.#### Actual ResultsTypeError: __init__() got an unexpected keyword argument store_cv_valueslm.RidgeClassifierCV actually has no parameter store_cv_values, even though some attributes depends on it.上面的任务说明中说明了代码仓库已经被下载到什么位置需要Agent帮忙解决PR中的问题。回看上文在2中的Prompt给了建议的操作路径探索仓库结构-重现错误-修改代码-重新运行-思考边界case(2) Agent的运行步骤str_replace_editor(commandview,path/repo) 查看仓库结构str_replace_editor(commandcreate, path/repo/reproduce_error.py, file_text…) 来重现错误bash(commandpython3 /repo/reproduce_error.py)执行编写的脚本str_replace_editor, commandreplace 编辑代码这里值得注意的是编辑工具中的replace用的不是告诉Agent需要编辑第几行而是告诉Agent需要全匹配哪些文本然后替换。我们尝试了几种不同的策略来指定对现有文件的编辑其中字符串替换的可靠性最高即模型指定将给定文件中的“old_str”替换为“new_str”。只有当“old_str”恰好有一个匹配项时才会进行替换。如果匹配项过多或过少则会向模型显示相应的错误消息以便其重试。此外原文中这里提供的上下文都是THOUGHT模型的文本输出、ACTION工具调用参数和OBSERVATION工具调用的部分结果三段我也怀疑就是Claude Code里使用的上下文模式。之前网上有泄漏Claude Code的提示词之后可以对照看看4. 思考这里想到了早期的斯坦福小镇的项目让模型自己扮演人的角色。模型其实本身具有决策和思考的能力如果你给良好的工具描述和结果反馈其实他可以像人一样处理问题。如果你制定了许多规则对于人来说本身就很困扰对于模型也是如此。04Claude Think Tool这篇文章主要讲了为Claude单独构造一个“思考工具”Think ToolThe “think” tool: Enabling Claude to stop and think in complex tool use situationswww.anthropic.com/engineering/claude-think-toolThink Tool的作用Think Tool的作用是在执行过程中添加一个步骤来停下来思考是否掌握了继续前进所需的所有信息Anthropic的博客中认为这在执行长链工具调用或与用户进行长时间的多步骤对话时尤其有用。Claude使用Think Tool进行的推理不如通过模型自带思考模式获得的推理全面但是更侧重于模型发现的新信息。Think Tool的描述{name:think,description:Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.,input_schema:{type:object,properties:{thought:{type:string,description:A thought to think about.}},required:[thought]2. Think Tool的使用场景(1)什么时候可以用对先前工具输出进行分析Claude 在采取行动之前需要仔细处理先前工具调用的输出并且可能需要在其方法中回溯限制比较多的时候当 Claude 需要遵循详细的指导方针并验证合规性时比如航空公司的条约需要顺序性地做决策当每个动作都建立在前一个动作的基础上时错误的代价比较高昂。(2)什么时候不用非顺序的工具调用如果 Claude 只需要进行一次工具调用或多次并行调用即可完成一项任务那么添加“思考”不太可能带来帮助。只需要遵循简单的指令的时候当 Claude 需要遵循的约束不多并且其默认行为足够好时额外的“思考”不太可能带来好处。文中提到增加了Think Tool以后显著提高了在SWE-Bench上的跑分。3. 思考结合前面的把Agent当成用户的想法人类在面对庞大的信息、较多的限制的时候需要停下来思考来整理信息、满足规约那么对于Agent也是如此。人类可以无声地思考并且在后续行动中用上自己在脑海里思考过的结论。但是对于LLM来说它只能输出显式的文本然后添加到上下文里。05Claude Code Best Practices这篇文章主要讲了怎么用好Claude Code(使用技巧)但是也能从中窥见一部分设计理念。在下面我只选取了我认为对我理解Claude设计理念有效的部分进行解读。Claude Code: Best practices for agentic codingwww.anthropic.com/engineering/claude-code-best-practic1. 提供接近原始模型的使用机制在博客中提到Claude Code is intentionally low-level and unopinionated, providing close to raw model access without forcing specific workflows. This design philosophy creates a flexible, customizable, scriptable, and safe power tool. While powerful, this flexibility presents a learning curve for engineers new to agentic coding tools—at least until they develop their own best practices.Claude Code 刻意追求低级和开放性提供接近原始模型的访问而无需强制执行特定的工作流程。这种设计理念打造了一个灵活、可定制、可脚本化且安全的强大工具。虽然功能强大但这种灵活性对于刚接触AI编码工具的工程师来说学习难度较高——至少在他们开发出自己的最佳实践之前是这样。Claude Code给用户的体验接近于直接调用大模型让用户跟像普通大模型对话那样输入指令。2. 项目记忆 CLAUDE.mdCLAUDE.md: 类似“项目记忆”。支持自动加载项目中的约定命令、代码规范、测试说明、repo 规则等。在发起一个会话时CLAUDE.md会被自动拉入上下文中。博客原文中提及“There’s no required format forCLAUDE.mdfiles. We recommend keeping them concise and human-readable.” 与Anthropic之前博客中提到的需要让模型接收人类易读的文本的观点类似。3. think hard在原文关于使用Claude的工作流程中一个有趣的点是你可以通过特定的词汇控制Thinking过程的Token上限。We recommend using the word “think” to trigger extended thinking mode, which gives Claude additional computation time to evaluate alternatives more thoroughly. These specific phrases are mapped directly to increasing levels of thinking budget in the system: “think” “think hard” “think harder” “ultrathink.” Each level allocates progressively more thinking budget for Claude to use.我们建议使用“思考”一词来触发extended thinking mode这能为Claude提供额外的计算时间以便更彻底地评估各种替代方案。这些特定的词汇会直接映射到系统中不断提升的思考预算级别“思考” “认真思考” “更加努力思考” “超级思考”。每个级别都会逐步为Claude分配更多的思考预算。(实际上就是thinking可以使用的Token数量06Multi Agent Research SystemHow we built our multi-agent research systemwww.anthropic.com/engineering/multi-agent-research-system1. Multi Agent适合解决不可预测的问题Research工作由于设计开放式问题很难提前预测步骤并且通常需要根据研究过程中出现的线索来更新Research的方式。这种不可预测性很适合由AI Agents完成。2. The essence of search is compression本文认为搜索的本质是一种压缩——搜索的核心任务不是找到所有东西而是从庞大的信息库vast corpus中提炼出最有价值的见解。就像把海量文本压缩成少数关键信息或结论。多个子Agent各自拥有自己的上下文窗口可以同时从不同角度去探索同一个问题。这样可以并行展开调查然后再把重要的结果tokens浓缩、汇报给主Agent。每个 subagent 可以有自己独立的工具 (tools)、提示词 (prompts)、探索路径 (exploration trajectories)这样可以避免所有探索都沿着同一个思路走path dependency从而保证调查是独立、全面、多角度的。3. Multi-Agent与人类社会博客中提到了一个有趣的比喻在过去十万年里单个人类的智力水平可能比古人类高一些但提升有限。人类社会在信息时代却变得「指数级地更强大」原因在于集体的智能和协调能力。不是因为个体突然变成「超人」而是因为我们学会了沟通、协作、分工才产生了更大规模的能力。让多个Agent协作就像人类社会一样能完成远超个体的任务。4. Multi-Agent有效是因为它可以消耗足够多的token这一段认为Multi-Agent架构的价值在于(1)突破单个智能体的 token 限制上下文 计算量。(2)通过并行化扩大推理能力。——这对于那些超过单体能力上限的复杂任务特别关键。下面给了个例子在research工作中可以通过创建subagent搜索一个问题的多个角度。Research系统中的MultiAgent架构下面是上面架构图中的时序流程简单总结地话Research的过程是一个Loop这里把Loop用时序图展示了出来。Multi-agent的工作流程上面两张图实际以DeepResearch为例叙述了Multi-Agent系统的工作流程。5. 构造Prompt的经验这里篇幅内容很长并且我觉得很有用就直接翻译以后摘取过来了没有做过多删减。Multi-Agent也带来了协调复杂性(coordination complexity)的指数增长Prompt Engineering是改进Agent行为的重要手段有一些构造Prompt的原则可以参考(1)站在Agent的角度思考想要优化与迭代Prompt必须先了解已有的Prompt引导了怎样的行为。这要求开发者设身处地从Agent的“思考过程”去看它是怎么工作的。为了做到这一点Anthropic团队使用Console构建了模拟环境并配备了系统中实际使用的提示和工具然后观察Agent的每个动作。是否可以认为在Claude Code中给Agent一个Terminal环境的作用是提供一个类似人机交互的环境而Terminal是最简单的人机交互环境并且Terminal刚好是文字性的是模型可以理解的。那么从这个视角来说纯CodeAct不那么好用的原因是code不能给Agent完整的可操作环境。通过模拟可以清楚地看到Agent在什么地方容易出错例如已经有了足够的结果却还在继续搜索;太冗长、不必要的搜索路径;选择了错误的工具。开发者需要理解Agent为什么会做出某些选择思考路径这样才能知道调整提示词时哪些改动最有可能带来显著改进。这里原文中用了“心智模型”(mental model)一词。Prompt可以塑造Agent的行为“心智模型”是在你脑子里用来理解和预测 agent 的反应如果你发现agent跟你的想法不一致你就可以调整prompt.(2)教会协调者主Agent如何分解任务。主Agent将query分解为子任务并将它们描述给subagent。每个subagent都需要任务目标、输出格式、工具的描述和使用方式、以及清晰的任务边界。如果没有详细的任务描述代理就会重复工作、遗漏工作或者找不到必要的信息。(3)提示主Agent根据任务复杂度调整拆分出的subagent数量。主Agent实际难以判断不同任务的工作量拆分任务是你的系统里的设计不是模型训练中的先验知识因此Anthropic团队认为需要在Prompt中明确写出给subagent分配任务的规则。Simple fact-finding requires just 1 agent with 3-10 tool calls, direct comparisons might need 2-4 subagents with 10-15 calls each, and complex research might use more than 10 subagents with clearly divided responsibilities. These explicit guidelines help the lead agent allocate resources efficiently and prevent overinvestment in simple queries, which was a common failure mode in our early versions.简单的事实调查只需1个agent调用 3-10 个tool直接的比较可能需要 2-4 个agent每个agent调用 10-15 tool而复杂的研究可能需要 10个以上的subagent并明确划分职责。这些明确的指导原则有助于主agent高效地分配资源并避免在简单查询上投入过多资源——这在早期版本中是一种常见的失败模式。(4)工具的设计和选择是至关重要的Agent-tool interfaces的重要程度等同于human-computer interfaces人机交互。让Agent使用正确的工具也非常非常重要。那么怎么保证Agent可以选择正确的Tool呢Anthropic团队为Agent提供了启发式的策略比如首先检查所有可用的工具列表将用户意图与工具用途相匹配用websearch做外部的探索。如果有专用的工具优先选择专用的工具而不是通用的工具。启发式是一种“经验规则”或“聪明的猜测”它不是保证最优解的严格算法而是依赖一些近似规则、直觉或模式 来快速缩小探索范围。当我们说让Agent进行启发式的探索意思是不要求 Agent 把所有可能路径都尝试一遍那会消耗巨大算力和 token。而是给 Agent 一些策略性引导让它优先尝试更可能有用的思路在探索中不断调整方向避免陷入冗余、低效的操作。坏的工具描述会严重误导智能体因此每个工具必须有明确的定位和清晰的说明让智能体能准确理解该工具的用途。(5)让Agent自我提升Anthropic团队发现Claude 4 模型自己本身就可以成为优秀的Prompt工程师。当给出提示和错误时Claude 4模型本身能够诊断Agent失败的原因并提出改进建议。Anthropic团队创建了一个tool-testing agent——当agent拿到一个有缺陷的 MCP 工具时它会尝试使用该工具然后重写工具描述以避免错误。通过数十次的工具测试tool-testing agent发现了关键的细微差别和错误。(6)先广后窄搜索的策略可以模仿人类的research流程先进行全局探索再深入细节挖掘。在不做引导的情况下Agent通常很容易生成输入过长、具体的query导致结果很少。Anthropic团队会鼓励Agent就是Prompt引导先从简短、宽泛的查询开始评估可用的内容然后逐步缩小范围。(7)引导思考过程Claude模型有一个Extended Thinking模式测试表明Extended Thinking可以提高指令遵循能力、推理能力和效率。subagent使用了Interleaved thinking导致subagent能够更有效地适应任何任务。根据 Anthropic的官方资料Extended Thinking是 Anthropic 给其 Claude 模型尤其是 Claude 3.7 Sonnet 以及更新模型加入的一种新的思维/推理模式它主要让模型在面对复杂问题时能“多花一点时间多做一步推理并把思考过程部分可见化”。(8)并行工具调用复杂的Research任务需要探索许多来源。博客中提到他们团队的早期的Agent执行是串行执行的所以很慢。后续他们引入了两种并行的方式a.主Agent并行而非串行启动 3-5 个subagentb.子代理并行使用 3 个或以上工具。这种并行处理将复杂query的research时间缩短了90%。6. 如何进行评估在比较传统的评估方式里通常假设AI每次都遵循相同的步骤给定输入 X系统应该遵循路径 Y 来产生输出 Z。但对于Multi-Agent系统来说即使起点相同Agent也可能采取完全不同的路径来实现其目标。一个Agent可能搜索3个source而另一个Agent搜索10个或者它们可能使用不同的工具来找到相同的答案。而我们并不总是知道正确的步骤是什么我们通常不能去检查Agent是否遵循了我们预先规定的“正确”步骤。相反我们需要灵活的评估方法来判断Agent是否在遵循合理流程、是否实现了正确的结果。(1)LLM-as-judgeAnthropic团队引入了LLM 作为评委进行评估评估标准如下事实准确性论断是否与来源相符引用准确性引用的来源是否与论断相符完整性是否涵盖了所有要求的方面source的质量是否使用了一手资料而非质量较低的二手资料工具使用效率是否合理地使用了正确的工具。Anthropic团队试过用多个 LLM 分别评判不同的指标但效果不稳定。最后发现「用一次 LLM 调用一个 prompt 生成所有指标的评分0.0–1.0再加一个通过/不通过的判定」最稳定也最接近人工评价。有明确答案时LLM评估最有效——当测试任务本身有明确标准答案时例如“列出研发预算最高的三家制药公司”LLM 评审可以直接检查答案是否正确。(2)Human evaluation自动化评测LLM-as-judge虽然高效但无法覆盖所有情况。有些边界case容易被漏掉例如模型在罕见问题上幻觉hallucination), 系统性的错误system failures), 很微妙的来源选择偏差subtle source selection biases因此即使在自动化评估盛行的时代人工测试仍然至关重要。7. 定义分工、问题解决的方式、工作量预算「Multi-agent systems have emergent behaviors」。即使只是对“主Agent(lead agent)”做了微小修改也可能引发子Agentsubagents行为上的不可预测变化。对Multi-agent系统来说好的 prompt 应当不只是给出严格指令strict instructions更应该提供一个协作框架framework for collaboration包括 分工division of labor问题解决方法problem-solving approaches工作量预算effort budgets。这种框架能帮助多个代理更高效地协作、减少混乱。8. 工程实践的经验(1)Agent的有状态会导致错误的累加直接重试代价很高昂文中提及结合Agent自身处理能力的错误恢复机制很重要。(2)除了监控常规系统的可观测性指标以外Anthropic团队还监控Agent的决策模式和交互方法。这种高级别的可观察性可以协助诊断根本原因、发现意外行为并修复常见故障。(3)使用Rainbow Deploys来避免中断正在运行的Agent——逐步将流量从旧版本转移到新版本同时保持两个版本同时运行。(4)同步于异步的权衡顺序地同步地执行更好实现但是效率低。异步执行可以提高并发度Agent可以并发工作并在需要时创建新的subAgent。但是异步引入了更高的复杂度在结果协调、状态一致性以及subagent之间的错误传播方面带来了挑战。由于模型能够处理更长、更复杂的研究任务Anthropic团队认为异步带来的性能显著提升可以弥补这种复杂性增加带来的代价。07Desktop感觉没有什么值得参考的内容主要是讲了怎么更方便地让用户用MCP? 先跳过了后续再看看毕竟常读常新。Desktop Extensions: One-click MCP server installation for Claude Desktopwww.anthropic.com/engineering/desktop-extensions08Writing Tools for AgentsWriting effective tools for agents — with agentswww.anthropic.com/engineering/writing-tools-for-agents1. Tool是确定性系统与非确定性系统之间的桥梁确定性系统给定相同的输入都会产生相同的输出(在传统的程序里我们的代码是确定性的)。非确定性系统如Agent相同的输入会产生不同的输出。而Tool是确定性系统和非确定性系统之间的桥梁。Tool是为Agent提供API函数是为软件开发者提供API。博客再次强调编写Tool最好的方式是提供对Agent来说最符合“人体工程学”的工具。实现一个Tool的方式先构造出一个Tool的原型然后评估与迭代。2. 合理评估Tool的方式在评估的时候让Agent不止输出结构化的response还输出自己的推理过程CoT)。通读CoT可以发现Tool描述中存在的问题。此外Agent在推理过程中「没有提及的部分」也非常重要这意味着Agent可能遗漏了什么。也可以用可以用Judge Agent帮助你分析结果和改进工具。3. 设计合适的ToolLLM的上下文窗口有限而计算机的内存和外存几乎无限。设计原则少而精优先构建能覆盖关键高价值任务的工具。合并功能工具可以在内部处理多个步骤减少冗余输出。例子不要做list_users/list_events/create_event三个工具→ 做个 schedule_event 工具直接处理找空档创建事件。不要做 read_logs 工具 → 做一个 search_logs 工具只返回相关日志片段。不要分散在get_customer_by_id / list_transactions / list_notes → 做一个 get_customer_context 工具一次性返回该客户的关键信息。每个工具要有明确、独特的目的。避免太多、功能重叠的工具因为这会让智能体难以选择反而降低效率。4. 准确地命名Tool当工具功能重叠或用途模糊时Agent可能会对使用哪些工具感到困惑。命名空间将相关工具分组到共同的前缀下有助于区分众多工具之间的界限。例如按服务例如 asana_search 和 jira_search 和按资源例如 asana_projects_search 和 asana_users_search 对工具进行命名空间划分可以帮助Agents在合适的时间选择合适的工具。前缀式asana_projects_search还是后缀式search_asana_projects命名对不同 LLM 的效果不同最好用自己的LLM测试一下哪种更好。有选择性地实现工具名字要能体现自然的任务划分。这么做的好处是减少工具数量和说明冗余让agent 上下文更干净不会被几十条工具描述淹没。把复杂推理交给工具本身处理****减轻 LLM 的上下文负担。降低 agent 出错率让agent更容易选对工具、传对参数从而得到对的结果。6. Tool应当返回有意义的上下文(1)工具应优先返回与上下文相关的关键信息而不是一堆底层技术细节。高信号低噪音(2)LLM 更擅长处理自然语言的名称或标签User: Simith)而不是复杂的随机IDuuid: a38f2-2d9c-…。有些情况下agent 既需要自然语言输出也要能拿到ID例如发消息时必须用 id12345。这种情况最好提供 response_format 参数让 agent 控制输出格式response_format“concise” ,此时返回简洁的东西、自然语言为主。response_format“detailed” 此时返回的东西应当包含 ID 等字段。(3)让agent自己选择要什么字段——就像GraphQL 查询一样灵活。这样既保证了灵活性又避免在默认情况下淹没 agent 的上下文窗口。(4)工具响应结构例如 XML、JSON 或 Markdown也会对结果产生影响。但是这里没有一刀切的解决方案。这是因为 LLM 是基于next-token prediction进行训练的并且倾向于使用与其训练数据匹配的格式来获得更好的性能。最佳响应结构会因任务和agent的不同而有很大差异。文中建议读者根据自己的评估选择最佳的响应结构。7. Tool一次返回的内容不要太多可以选择的策略分页(page)、让agent进行范围查询(range selection)、过滤(filter)、截断(truncation)。关于截断需要在系统里约定一个token上限。如果必须截断最好提示 agent 下一步该怎么做例如请改为更小、更具体的查询。错误响应要清晰且可操作, 不要只返回冷冰冰的错误码或长堆栈,要提示具体问题和如何修正输入。8. 怎么写工具的描述像为团队中的新员工介绍一样描述您的工具明确输入输出格式解释专业术语描述资源之间的关系避免依赖隐藏的知识。09总结本次阅读了Anthropic的8篇博客后面几篇篇幅比较长我在Agent工程实践中也做了类似的事情但是并没有总结归纳出“为什么”因此这些博客极大地帮我加深了Agent领域的认知。回归上篇提到的Claude Code可能是最好的Multi-Agent系统吗我无法给出明确的答案但是我可以确信Anthropic的确在Agent领域有极好的理解。此外Anthropic多次提到需要像设计人机接口一样为Agent提供工具说明、错误响应、友好提示。这里认为是LLM使用了大量的人类文本训练因此提供易于人类阅读的文字也将对Agent有所帮助。为什么LLM可以推理和思考并且选择使用合适的工具我想是因为文字本身包含了推理和思考信息这让LLM也就有了类人的能力。那么——AI的尽头是否是人类学呢那么如何系统的去学习大模型LLM作为一名深耕行业的资深大模型算法工程师我经常会收到一些评论和私信我是小白学习大模型该从哪里入手呢我自学没有方向怎么办这个地方我不会啊。如果你也有类似的经历一定要继续看下去这些问题啊也不是三言两语啊就能讲明白的。所以我综合了大模型的所有知识点给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢我就曾放空大脑以一个大模型小白的角度去重新解析它采用基础知识和实战项目相结合的教学方式历时3个月终于完成了这样的课程让你真正体会到什么是每一秒都在疯狂输出知识点。由于篇幅有限⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》扫码获取~大模型学习指南路线汇总我们这套大模型资料呢会从基础篇、进阶篇和项目实战篇等三大方面来讲解。①.基础篇基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念用最易懂的方式带你入门大模型。②.进阶篇接下来是进阶篇你将掌握RAG、Agent、Langchain、大模型微调和私有化部署学习如何构建外挂知识库并和自己的企业相结合学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。③.实战篇实战篇会手把手带着大家练习企业级的落地项目已脱敏比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等从而帮助大家更好的应对大模型时代的挑战。④.福利篇最后呢会给大家一个小福利课程视频中的所有素材有搭建AI开发环境资料包还有学习计划表几十上百G素材、电子书和课件等等只要你能想到的素材我这里几乎都有。我已经全部上传到CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】相信我这套大模型系统教程将会是全网最齐全 最易懂的小白专用课

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询