https://github.com/DITF16/astrbot_plugin_self_iterative_core/tree/master

能调用工具的ai corder是不是更智能

如果coder写的是工具呢

2 references

Copilot said: 这个仓库是一个给 AstrBot 用的“自迭代核心”插件 —— 简单说就是把“能读写插件文件并执行/加载它们”的能力交给 Bot(通过 LLM

这个仓库是一个给 AstrBot 用的“自迭代核心”插件 —— 简单说就是把“能读写插件文件并执行/加载它们”的能力交给 Bot(通过 LLM 工具链),从而让 Bot 在受限范围内自我修改/生成/升级插件。关键点和实现思路如下(基于仓库 README 和 main.py):

概览

  • 目标:赋予 AstrBot 在插件目录内进行自我完善、修改、创建新插件的能力,探索 LLM 自动迭代插件/代码的可能性。
  • 风险声明很明确:会读写文件并执行代码,强烈不建议在生产或含敏感数据的环境中直接运行,生成的代码必须人工审查。
  • 推荐模型/配套:仓库建议使用强推理能力的模型(例如 README 中推荐的 gemini-3-pro),并配合知识库(RAG)和网页搜索能力以减少幻觉与自修复错误。

仓库结构(主要文件)

  • README.md:功能说明、风险与使用建议、如何安装与热重载(提示设置环境变量 ASTRBOT_RELOAD=1 可开启插件热重载)。
  • main.py:插件的入口,定义了核心类 PluginDeveloper(继承自 AstrBot 的 Star),在构造函数里:
    • 调用 init_managers(self.config)(在 utils 下实现)做一些初始化。
    • 通过 self.context.add_llm_tools(...) 注册了一组“LLM 工具”(WriteFileTool、ReadFileTool、ListFilesTool、LoadPluginTool、CheckLogsTool、ListPluginsTool、UninstallPluginTool)。也就是说插件把文件/插件管理的能力以工具形式暴露给 LLM agent。
    • 提供了一个命令 @filter.command("自迭代测试"),用于检查插件是否加载成功。
    • terminate 方法会在停用时关闭日志管理器(log_manager.shutdown())。
  • utils/:
    • file_manager.py:应该实现了读取/写入/列出文件等文件相关操作(具体细节在此文件)。
    • log_manager.py:负责日志记录/管理与关闭(terminate 中引用)。
    • tools.py:很关键,应该实现了上述那些 LLM 工具(WriteFileTool 等)的具体行为:把文件系统和插件管理操作封装成 LLM 可调用的工具接口,并实现安全或路径限制(通常把作用域限制在插件目录)。
  • 其它:_conf_schema.json(配置 schema)、metadata.yaml、LICENSE(AGPL-3.0)等。

实现要点(从 main.py 与 README 推断)

  • 以 AstrBot 插件体系为基础,创建 Star 子类把功能挂到 Bot 上。
  • 初始化管理器后,把文件与插件管理操作封装为“LLM 工具”并注册到当前会话的上下文(context.add_llm_tools),这样 LLM 在运行时可以调用这些工具去读写文件、加载/卸载插件、检查日志等。
  • 插件依赖异步架构(AstrBot 是异步的),README 也强制强调生成代码必须遵循 async/await,避免阻塞主线程。
  • 安全层面:README 中有多处提示和发布规范,开发者要求对生成代码做人工审查并禁止未经审查直接发布到插件市场。

风险与使用注意

  • 本质上是“受限的自改/自生成功能”:能自动修改代码就有潜在危险(逻辑/安全/权限/稳定性问题)。
  • 需要把作用域严格限制在插件目录,并人工审查每次生成/修改的代码。
  • 推荐搭配高能力模型、知识库和网络搜索能力来提高成功率并便于自修复失败的改动。

总结(���句话)

  • 这是一个把“文件与插件管理操作”暴露给 LLM 的 AstrBot 插件,使得 Bot 能在受限范围内生成/修改插件代码,实现自迭代。但它高度依赖模型能力且有明显安全风险,使用前必须充分理解并人工审查生成内容。

如果需要,我可以把仓库里某些关键文件(比如 utils/tools.py、utils/file_manager.py)的实现内容逐个解释,但你现在已有 README 与 main.py 的核心要点概览。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐