File contents Agent 开发指南
本文档记录 SimpleLLMFunc 框架的开发经验和流程原则。
开发环境准备
1. 环境同步
进入项目目录后,首先同步依赖环境。
2. 运行测试
使用 pytest 运行相关测试文件。
3. 运行示例
使用 python 直接运行示例文件。
开发流程
步骤 1: 理解需求并阅读现有代码
关键原则 :
先阅读 README 和文档了解框架设计理念
使用搜索工具查找关键代码模式
使用 glob 工具查找相关文件
阅读核心文件的实现,理解现有架构
搜索模式 :
搜索事件流相关代码
搜索工具执行相关代码
搜索装饰器相关代码
步骤 2: 设计方案
根据需求设计:
新增/修改哪些文件
新增哪些类型/函数
保持向前向后兼容性
步骤 3: 单元测试先行
原则 :先写测试,验证核心逻辑
创建测试文件
测试事件发射器的核心功能
验证事件类型定义
步骤 4: 实现功能
按依赖顺序实现:
类型定义
核心类
执行逻辑修改
导出更新
步骤 5: 运行测试验证
运行单元测试确保核心逻辑正确。
步骤 6: 创建示例并运行
创建实际使用示例,验证完整流程。
步骤 7: 提交代码
使用有意义的提交信息,描述做了什么修改。
调试技巧
1. 添加临时日志输出
当功能不工作时,在关键位置添加调试输出,观察变量值和执行路径。
2. 追踪问题根源
本例中的排查思路:
现象:自定义事件未显示
第一个怀疑点:event_emitter 是否正确传递
第二个怀疑点:工具函数参数检查方式是否正确
解决思路:从 Tool 对象获取 parameters 列表
3. 使用 .env 控制日志级别
设置 LOG_LEVEL=WARNING 减少无关日志干扰。
测试驱动开发 (TDD) 实践
1. 红灯-绿灯-重构循环
红灯 : 写一个会失败的测试
绿灯 : 写最少的代码让测试通过
重构 : 重构代码,测试仍然通过
2. 测试分层
单元测试 : 测试独立组件(事件发射器、事件类型)
集成测试 : 通过示例验证完整流程
3. 测试原则
每个新功能应该有对应的单元测试
测试应该覆盖核心逻辑边界情况
关键代码位置
功能
文件位置
事件类型定义
hooks/events.py
事件发射器
hooks/event_emitter.py
ReAct 循环
base/ReAct.py
工具执行
base/tool_call/execution.py
Tool 装饰器
tool/tool.py
工具注册
llm_decorator/utils/tools.py
常见问题排查
问题: 自定义事件不显示
排查方向:
检查 event_emitter 是否为 None
检查工具函数签名参数检查方式
检查 Tool 对象的 parameters 列表
检查事件是否正确放入队列
问题: poetry 环境问题
尝试重新同步依赖。
Git 工作流
从 dev 创建功能分支
开发并提交,提交信息使用英文
推送到远程
经验总结
先读文档和代码 : 理解框架设计后再动手
单元测试验证核心逻辑 : 独立测试新功能
示例验证完整流程 : 端到端测试
调试时加日志 : 逐步追踪问题
保持提交小而专注 : 每次提交只做一件事
1 --- 2 name: 024-agent-1342a4c6 3 description: Agent 开发指南 4 --- 5 # Agent 开发指南 6 7 本文档记录 SimpleLLMFunc 框架的开发经验和流程原则。 8 9 ## 开发环境准备 10 11 ### 1. 环境同步 12 进入项目目录后,首先同步依赖环境。 13 14 ### 2. 运行测试 15 使用 pytest 运行相关测试文件。 16 17 ### 3. 运行示例 18 使用 python 直接运行示例文件。 19 20 ## 开发流程 21 22 ### 步骤 1: 理解需求并阅读现有代码 23 24 **关键原则**: 25 - 先阅读 README 和文档了解框架设计理念 26 - 使用搜索工具查找关键代码模式 27 - 使用 glob 工具查找相关文件 28 - 阅读核心文件的实现,理解现有架构 29 30 **搜索模式**: 31 - 搜索事件流相关代码 32 - 搜索工具执行相关代码 33 - 搜索装饰器相关代码 34 35 ### 步骤 2: 设计方案 36 37 根据需求设计: 38 - 新增/修改哪些文件 39 - 新增哪些类型/函数 40 - 保持向前向后兼容性 41 42 ### 步骤 3: 单元测试先行 43 44 **原则**:先写测试,验证核心逻辑 45 - 创建测试文件 46 - 测试事件发射器的核心功能 47 - 验证事件类型定义 48 49 ### 步骤 4: 实现功能 50 51 按依赖顺序实现: 52 1. 类型定义 53 2. 核心类 54 3. 执行逻辑修改 55 4. 导出更新 56 57 ### 步骤 5: 运行测试验证 58 59 运行单元测试确保核心逻辑正确。 60 61 ### 步骤 6: 创建示例并运行 62 63 创建实际使用示例,验证完整流程。 64 65 ### 步骤 7: 提交代码 66 67 使用有意义的提交信息,描述做了什么修改。 68 69 ## 调试技巧 70 71 ### 1. 添加临时日志输出 72 73 当功能不工作时,在关键位置添加调试输出,观察变量值和执行路径。 74 75 ### 2. 追踪问题根源 76 77 本例中的排查思路: 78 - 现象:自定义事件未显示 79 - 第一个怀疑点:event_emitter 是否正确传递 80 - 第二个怀疑点:工具函数参数检查方式是否正确 81 - 解决思路:从 Tool 对象获取 parameters 列表 82 83 ### 3. 使用 .env 控制日志级别 84 85 设置 LOG_LEVEL=WARNING 减少无关日志干扰。 86 87 ## 测试驱动开发 (TDD) 实践 88 89 ### 1. 红灯-绿灯-重构循环 90 91 1. **红灯**: 写一个会失败的测试 92 2. **绿灯**: 写最少的代码让测试通过 93 3. **重构**: 重构代码,测试仍然通过 94 95 ### 2. 测试分层 96 97 - **单元测试**: 测试独立组件(事件发射器、事件类型) 98 - **集成测试**: 通过示例验证完整流程 99 100 ### 3. 测试原则 101 102 - 每个新功能应该有对应的单元测试 103 - 测试应该覆盖核心逻辑边界情况 104 105 ## 关键代码位置 106 107 | 功能 | 文件位置 | 108 |------|----------| 109 | 事件类型定义 | hooks/events.py | 110 | 事件发射器 | hooks/event_emitter.py | 111 | ReAct 循环 | base/ReAct.py | 112 | 工具执行 | base/tool_call/execution.py | 113 | Tool 装饰器 | tool/tool.py | 114 | 工具注册 | llm_decorator/utils/tools.py | 115 116 ## 常见问题排查 117 118 ### 问题: 自定义事件不显示 119 120 排查方向: 121 1. 检查 event_emitter 是否为 None 122 2. 检查工具函数签名参数检查方式 123 3. 检查 Tool 对象的 parameters 列表 124 4. 检查事件是否正确放入队列 125 126 ### 问题: poetry 环境问题 127 128 尝试重新同步依赖。 129 130 ## Git 工作流 131 132 1. 从 dev 创建功能分支 133 2. 开发并提交,提交信息使用英文 134 3. 推送到远程 135 136 ## 经验总结 137 138 1. **先读文档和代码**: 理解框架设计后再动手 139 2. **单元测试验证核心逻辑**: 独立测试新功能 140 3. **示例验证完整流程**: 端到端测试 141 4. **调试时加日志**: 逐步追踪问题 142 5. **保持提交小而专注**: 每次提交只做一件事
tools-only/X-Skills/tree/main/development/testing/024-agent_1342a4c6 commit e148bfd748
Frequently asked questions How do I install the 024 Agent 1342a4c6 skill? Run npx skillmds@latest add tools-only/024-agent-1342a4c6 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the 024 Agent 1342a4c6 skill do? Agent 开发指南 It is listed under AI & ML on SkillMD.
Is 024 Agent 1342a4c6 safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with 024 Agent 1342a4c6? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is 024 Agent 1342a4c6 free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published 024 Agent 1342a4c6? tools-only (@tools-only) published this skill. Their other Agent Skills are listed on their SkillMD profile.