趋近智
一旦你的智能体有了计划并开始行动,仅仅等待最终结果是不够的,特别是在学习或构建新事物时。你会希望看到它是如何一步步完成任务的。这时,跟踪任务执行就派上用场了。这就像是站在你的智能体身后,观察它的行为和思考过程。
监测智能体的执行过程很重要,原因如下:
当你的智能体执行任务时,以下几类信息特别有用:
web_search、calculator_tool)以及它将提供给该工具的输入(参数)(例如,query="current temperature in Berlin"、expression="2+2")。观察这些元素可以让你清楚地了解智能体的操作循环:它评估情况,思考如何行动,执行操作,然后观察结果,重复此循环直到目标达成。
对于初级智能体,你不需要复杂的监控系统。简单、直接的方法通常是理解发生情况最有效的方法。
跟踪智能体执行的最直接方法是通过日志记录。你可以把日志记录看作是你的智能体在记录其活动的日记。在其操作的各个点,你指示智能体(或运行它的框架)记录下它正在做什么、思考什么或看到什么。
对于你在学习时可能构建的非常简单的智能体,追踪任务执行可以像在重要节点插入 print() 语句一样基本。例如,你可以打印:
虽然 print() 语句容易使用,但追求稍微更结构化的日志记录是有益的,即使在早期阶段也是如此。这并不意味着马上使用复杂的日志库,而是要一致地格式化你的打印语句。例如,用类型(如INFO、DEBUG、ACTION、OBSERVATION)和时间戳作为消息前缀,可以使输出在以后更容易阅读和分析。
以下是一个智能体执行搜索时,结构化日志片段可能的样子:
[2023-10-27 10:00:05 INFO] 智能体任务:查找法国首都。
[2023-10-27 10:00:06 THINK] 我需要查找法国首都。我应该使用web_search工具。
[2023-10-27 10:00:06 ACTION] 使用工具:web_search,输入:{"query": "capital of France"}
[2023-10-27 10:00:08 OBSERVATION] 网络搜索结果:“法国的首都是巴黎。”
[2023-10-27 10:00:08 THINK] 我已找到首都。任务完成。
[2023-10-27 10:00:08 ACTION] 使用工具:finish_task,输入:{"answer": "Paris"}
这种输出清楚地表明了智能体的内部推理(思考)、它的行动(操作)以及它所学到的(观察)。
有时,智能体执行流程的视觉呈现可以帮助你加深理解,特别是对于涉及多个步骤或决策点的任务。下图说明了常见的智能体操作循环,并标示了通常在哪里进行日志记录以获取重要信息。
该图展示了智能体操作的一般循环。每个带有“日志:”注释的箭头都表示一个可以记录智能体状态或决策信息以供跟踪的点。
这类图表可以帮助你清楚地看到日志如何融入智能体的整体流程。
拥有智能体执行日志是一回事;理解其含义是下一步。当你审查跟踪到的信息时,你实质上是在尝试重构智能体针对给定任务的“故事”。
问问自己这样的问题:
例如,如果你的日志显示:
[THINK] 我需要查找“纽约”的天气。
[ACTION] search_tool("weather New York")
[OBSERVATION] 错误:城市不够具体。你是说纽约市,纽约州还是纽约,英国?
[THINK] 城市不具体。我应该尝试“纽约市,纽约州”。
[ACTION] search_tool("weather New York City, NY")
这个片段告诉你,智能体最初做了一个合理的尝试,遇到了一个错误,然后其推理根据观察结果进行调整,尝试进行更具体的查询。这是适应性行为的一个好迹象。反之,如果它反复尝试“纽约天气”,日志就会显示出其错误处理或规划中的问题。
当你构建更复杂的智能体或在团队环境中工作时,你可能会遇到更高级的跟踪和可观察性工具。这些系统可以提供集中式日志记录、性能指标、智能体运行轨迹的可视化以及更易用的调试界面(例如,LangSmith、Arize等平台或自定义仪表板)。
然而,基本原理保持不变。理解哪些信息需要跟踪以及如何使用基础日志记录技术来解释这些信息,能够打下一个坚实的基础。这些基本技能将对你很有帮助,即使当你转向更复杂的智能体开发时也是如此。目前,专注于清晰、信息丰富的日志记录是监测和理解你的第一个LLM智能体的好方法。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造