Claude---s1---框架梳理
详细数据流转1️⃣ 用户发起指令与系统组装 (CLI Initialization)用户动作在终端输入 RuiZNrun --goal 读取当前目录下的 README.md。数据流转cli/main.py接收到原生命令行参数argparse将其解析为字符串goal。AgentRunner启动生成全局唯一的run_id如20260722-182000-a1b2c3并创建ExecutionContext将goal写入上下文作为初始目标。建立订阅网络AgentRunner将负责终端 UI 的StdoutPrinter和负责写日志的EventWriter绑定到EventBus上。发布起点事件EventBus广播RunStartedEventEventWriter收到后立刻在events.jsonl中追加写入第一行 JSON 数据并flush刷盘。2️⃣ 第一次 Loop发送 Context 给 LLM (Plan 阶段)数据流转AgentLoop读取当前ExecutionContext中的messages此时包含系统 prompt 和用户的goal。构造 API 请求AnthropicProvider从ToolRegistry获取所有工具的 Schema如ReadFileTool的输入参数结构并向systemprompt 和工具列表末尾注入cache_control: {type: ephemeral}标记。发起 HTTP/gRPC 流式请求数据发送给 Anthropic Claude API。流式 Token 处理API 逐字返回文本 ChunkAnthropicProvider捕获到 Chunk 后向EventBus发布LlmTokenEvent。StdoutPrinter收到LlmTokenEvent调用print(token, end, flushTrue)在终端呈现打字机效果并将内部标志位_inline置为True表示当前处于未换行的流式输出状态。3️⃣ LLM 决策使用工具 (Observe 阶段)数据流转API 响应接收完毕LLM 判断需要调用工具返回响应stop_reason:tool_usecontent: 包含ToolCallBlock(idcall_123, nameread_file, input{path: README.md})解析与入栈AnthropicProvider将其包装为LlmResponse数据对象并返回给AgentLoop。AgentLoop将 LLM 的这条带有tool_use的assistant消息完整追加到ExecutionContext.messages中作为对后续工具调用的上下文约束。4️⃣ 安全调度与工具执行 (Act Result 阶段)数据流转响应格式化AgentLoop发现 LLM 的返回中包含tool_calls发起invoke_tool()调用。发布启动事件向EventBus发布ToolCallStartedEvent。StdoutPrinter收到事件检查到_inline True先调用_ensure_newline()补打一个\n换行然后再打印[tool] read_file {path: README.md}避免日志与流式 Token 粘在一起。安全拦截与执行以ReadFileTool为例路由查找ToolRegistry查找是否存在名为read_file的工具。必填校验校验path参数是否存在。安全防线 1路径检查检查path中是否包含..。若包含直接抛出PermissionError安全防线 2超时控制通过asyncio.wait_for(..., timeout10.0)执行异步读取安全防线 3内存防爆读取文件二进制流若超过512KB截断前面部分并追加\n[truncated]。封装结果若成功返回ToolResult(content文件内容..., is_errorFalse)。若报错例如文件不存在或越界被invoke_tool()内部的try...except捕获不让异常抛出崩溃而是转换为ToolResult(contentPermissionError: ..., is_errorTrue)。写回上下文AgentLoop将ToolResult包装成user角色的tool_result格式追加回ExecutionContext.messages如果一轮中有多个工具调用ExecutionContext内部会自动进行数据合并。5️⃣ 第二次 Loop 与优雅收尾 (Final Step Termination)数据流转再次发起 API 请求AgentLoop带有最新的messages包含上一步读取到的文件内容/错误信息再次调用AnthropicProvider。缓存命中因为头部 Prompt 和 Tools 未变Anthropic 服务端直接命中 Prompt Caching响应速度大幅提升。生成最终回答LLM 结合文件内容生成总结文本通过流式 Token 实时打字呈现在终端。检测终止标志本次 API 返回的stop_reason end_turn且没有新的tool_calls。AgentLoop识别到任务完成退出while循环更新context.status success。生命周期闭环 (AgentRunner)AgentRunner捕获到 Loop 结束向EventBus发布RunFinishedEvent。StdoutPrinter打印最终统计日志如[run] success 2 steps 1.5s。EventWriter写入最后一条 JSONL 日志在async with上下文退出时安全关闭events.jsonl文件句柄。整个进程以 Exit Code0干净退出。核心组件与名称含义全解析1. 入口与生命周期管理层 (CLI Lifecycle)RuiZN含义与职责本 AI Agent 框架的 CLI 命令行工具名称。main.py/commands.py含义与职责CLI 命令入口。解析参数如--goal捕获系统级信号如 UNIX SIGINT /KeyboardInterrupt并驱动异步主协程启动。AgentRunner(运行组装车间)含义与职责Agent 的“工厂与收尾车间”。干什么的生成本次调用的唯一编号run_id如20260511-161020-abc123。实例化并组装所有零散组件EventBus, ExecutionContext, Provider, Registry。注册订阅者StdoutPrinter和EventWriter。负责安全收尾无论 Agent 是成功退出、超步数崩溃还是被CtrlC中断都保证发布RunFinishedEvent并在安全关闭日志文件后再重新抛出CancelledError。2. 状态与内存管理层 (Context Events)ExecutionContext(工作记忆与状态机)含义与职责Agent 的“大脑内存卡”与“运行状态追踪器”。干什么的存储当前任务的goal、run_id、当前步数step、终止状态status以及核心的对话历史messages。关键细节封装了 Anthropic API 的消息合并逻辑同一轮次中的多个tool_result必须合并进同一条user消息中。EventBus(事件总线)含义与职责解耦的“内部广播中心”。干什么的维护订阅者列表_subscribers。当 Loop、Tool 或 Provider 发生关键动作时发布事件如 Token 生成、工具启动、运行完成总线按顺序并发通知所有订阅者。EventWriter(日志写入器)含义与职责持久化“黑匣子”日志记录员。干什么的订阅 EventBus每收到一个事件就将其序列化为 JSON 并立刻写入events.jsonl文件无缓冲区打折强制flush保证进程突发崩溃时日志不丢失。StdoutPrinter(终端输出格式化器)含义与职责终端 UI 渲染控制者。干什么的订阅 EventBus将事件转化为终端看得懂的打印输出。关键细节维护_inline标志位。当 LLM 处于流式打字机输出状态未换行时突然收到工具调用通知_ensure_newline()会先自动补全一个换行避免输出混成一团。3. 大模型与通信层 (LLM Provider)AnthropicProvider(模型适配器)含义与职责与 Anthropic (Claude) API 通信的底层驱动。干什么的封装流式请求Streaming将 API 返回的文本片段实时转化为LlmTokenEvent抛给 EventBus同时负责将本地ToolRegistry的工具定义转为 API 格式。Prompt Caching(提示词缓存机制)含义与职责API 成本与性能优化手段。干什么的在systemprompt 和tools列表末尾加上cache_control: {type: ephemeral}标记让后续轮次的重复上下文命中服务端缓存降低 90% 的 Token 费用并加快响应。4. 主循环控制器 (Control Loop)AgentLoop(主循环状态机)含义与职责Agent 的“核心发动机/调度控制器”。干什么的驱动Observe ──► Act状态循环。按顺序完成调用 LLM 决策 $\rightarrow$ 记录 LLM 回复到上下文 $\rightarrow$ 执行工具 $\rightarrow$ 记录工具返回结果 $\rightarrow$ 检查终止条件如end_turn或达到max_steps。5. 工具系统 (Tool System)BaseTool(工具基类/模板)含义与职责所有工具必须遵循的抽象接口规范继承自abc.ABC。干什么的定义工具的元数据name,description,input_schema并强制实现async def invoke()方法。ToolResult(工具返回数据结构)含义与职责工具执行结果的标准数据包dataclass。核心字段content: str给 LLM 看的工具输出内容。is_error: bool标记工具执行是否出错即使出错也不抛出 Python 异常而是作为结果返回。error_type: str | None错误类型标记如timeout,permission_error,runtime_error。ToolRegistry(工具注册表)含义与职责工具的“仓库管理者”。干什么的维护工具字典_tools。提供tool_schemas()方法直接导出适配 Anthropic API 的tools格式供 LLM 了解当前可用的工具列表。invoke_tool()(安全执行包装器)含义与职责工具调用的“安全隔离舱/调度员”。干什么的查找与校验检查工具是否存在、必填参数required是否缺失。超时控制使用asyncio.wait_for(..., timeout10.0)防死锁。异常捕获与_fail()兜底捕获所有运行时报错与超时不让异常冒泡到AgentLoop统一转为带is_errorTrue的ToolResult。ReadFileTool(内置读取文件工具)含义与职责S1 阶段内置的具体工具示例。内部三层安全边界防路径穿越若路径包含..则抛出PermissionError禁止读取上层路径。防内存/Token 溢出文件超过512KB时自动截断并在末尾追加\n[truncated]告知 LLM。错误转化触发任何错误后由invoke_tool()捕获并转为错误结果给 LLM触发 LLM 的自我纠错机制。

相关新闻

孩子成绩持续落后,盲目刷题没用!挑选 AI 智习室,为什么很多家长选择佐管家?

孩子成绩持续落后,盲目刷题没用!挑选 AI 智习室,为什么很多家长选择佐管家?

不少家长都有同样的困扰:孩子成绩长期跟不上,作业拖拉、错题反复出现;上课似懂非懂,考试一塌糊涂。补习班跟不上进度,居家辅导矛盾不断。双减背景下,越来越多家庭把目光投向 AI 智习室,但市面上…

2026/7/23 7:37:57 阅读更多 →
飞轮储能精密储能舱车间通风 易互德防静电稳温布风管保障储能设备装配安全

飞轮储能精密储能舱车间通风 易互德防静电稳温布风管保障储能设备装配安全

飞轮储能装置属于高速旋转精密储能装备,转子、磁悬浮轴承对环境粉尘、静电、温湿度变化高度敏感。微米级粉尘进入装配舱,会造成高速轴承磨损、动平衡失衡;静电放电极易损伤电控模块;温度波动引发材料热胀冷缩,降低转子…

2026/7/23 7:37:57 阅读更多 →
超越Audio2Face:3个高级技巧让MetaHuman数字人表情栩栩如生

超越Audio2Face:3个高级技巧让MetaHuman数字人表情栩栩如生

1. 项目概述:从语音到表情的创作革命 如果你正在尝试用语音驱动数字人表情,却总觉得效果僵硬、不自然,或者生成的动画仅限于嘴部开合,缺乏情感深度,那么你很可能已经接触过Audio2Face这类工具。它确实解决了“从无到有…

2026/7/23 7:37:57 阅读更多 →

最新新闻

遗传算法优化BP神经网络的MATLAB实现与应用

遗传算法优化BP神经网络的MATLAB实现与应用

1. 项目概述在工程预测和数据分析领域,神经网络因其强大的非线性拟合能力而广受青睐。然而,传统神经网络(尤其是BP神经网络)存在训练速度慢、易陷入局部最优等固有缺陷。遗传算法作为一种模拟自然进化过程的全局优化方法&#xff…

2026/7/23 13:39:38 阅读更多 →
制造业经验数字化:从老师傅手感U盘存储到AR传承

制造业经验数字化:从老师傅手感U盘存储到AR传承

1. 为什么需要把经验装进U盘 在制造业和传统手工业领域,老师傅们积累了数十年的宝贵经验。这些经验往往以"手感"、"火候"、"眼力"等形式存在,难以量化传承。我曾亲眼见证一位退休的老钳工,仅凭手指触摸就能判断…

2026/7/23 13:39:38 阅读更多 →
创新:层层引爆效应

创新:层层引爆效应

创新落地从来不是单点发力就能实现的,它需要一套环环相扣的链式传导机制,而搭建创新选择层级传导整合模型,正是破解创新落地难题的关键。很多时候,我们没能清晰定位自身在创新推进中的角色,导致创新难以从构想转化为实…

2026/7/23 13:39:38 阅读更多 →
双分支残差网络在低光照图像增强中的应用与实践

双分支残差网络在低光照图像增强中的应用与实践

1. 项目背景与核心挑战低光照图像增强是计算机视觉领域长期存在的技术难题。在安防监控、医疗影像、自动驾驶等实际场景中,由于光照条件限制获取的图像往往存在噪声大、细节丢失、色彩失真等问题。传统方法如直方图均衡化、Retinex理论等基于人工设计的特征提取方式…

2026/7/23 13:39:38 阅读更多 →
OEM贴牌会不会影响GEO获客效果

OEM贴牌会不会影响GEO获客效果

这是贴牌方在决策时的一个核心疑虑:系统打上自己的品牌后,GEO的获客效果会不会打折扣?毕竟在传统制造业中,“贴牌”有时意味着“技术降级”。这个担忧在软件OEM领域是完全不需要的。OEM贴牌不影响获客效果的底层逻辑AI搜索平台在评…

2026/7/23 13:39:38 阅读更多 →
jdk8 list 删除500行开始的数据

jdk8 list 删除500行开始的数据

在 JDK 8 中,要从 List 中删除从第 500 行开始的所有数据(即删除索引 > 499 的所有元素),有多种方式。根据你的具体需求,我整理了几种常用方法:一、删除从第 500 行开始到末尾的所有数据方法一&#xff…

2026/7/23 13:38:38 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻