惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
罗磊的独立博客
M
MIT News - Artificial intelligence
G
Google Developers Blog
V
V2EX
D
Docker
博客园_首页
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
博客园 - 司徒正美
J
Java Code Geeks
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
B
Blog RSS Feed
博客园 - 【当耐特】
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky

分享创造

分享 KCase 脑图测试用例生成平台(AI 辅助生成测试用例) 标签页囤积症自救:写了个插件 TabRack,主打快速检索、自动分类和 AI 摘要 [file-preview]一个比较全面的在线文件预览组件库-支持 react 和 vue 撸了个 iOS 小应用[极简水印相机],直接免费 做了一个 V2EX Skill 写了个 iOS 打码 App「遮鸭 Maskduck」,纯离线免费 35 岁前端,裁员失业后,我花 1 个月做了个 AI 生图网站 亲身经历猫咪急症,我做了一款猫狗疼痛检测工具,希望能救你家毛孩一命 如何用 AI 做比较酷炫的落地页? 求真!最近 AI 生图的能力强到可怕 开源一个查看 k8s 的菜单栏工具-kubebar Packpour:我做了个专门给 App Store Connect 填多语言元数据的小工具 面对 140 年一遇的超级厄尔尼诺,我做了个全球监测小站 做了一个自动翻译的 Hacker News 客户端 做了一个 AI 头像生成器,可以免费生成 2 次 [送码 50 个] 自己手搓了个高颜值的倒数日 App——拾光机,求 V 友们指点 一个将苹果健康 APP 数据导出的工具,然后把你的数据喂给 AI 分析 我做了一个叫「订阅斩」的 iOS App,专门对付那些悄悄扣钱的订阅 做了个草率的日麻互动漫画,听听反馈 喜欢自己洗车的朋友们,我用 ai 做了一款洗车小程序 -- 洗车志 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 用 AI 开发熊孩子自律的小程序 用 OpenClaw 搭建个人运动助手 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 [Video Companion]一个 chrome 插件,解决大多对视频操作的需求~欢迎使用提 bug AI 时代,做产品简单了,把产品推广出去却变的更难了~ bestskills.dev - Skills 精选和评测站点 免 ROOT 强力卸载安卓广告软件 一个 All In One 的运维工具,支持 SSH、数据库、Redis 管理 [开源] Codeg V0.10:专注于代码生成的多智能体 IDE(cc、codex、gemini、opencode……),新版本重构了工作区,飞一般的体验,支持桌面端、服务器部署
Wolf RBAC 五年来最重要的更新: 40 刀 vibe coding,给开源...
igeeky · 2026-06-07 · via 分享创造

    我是 Wolf 的作者。Wolf 是一个开源 RBAC 权限系统,维护了五年多,一直在做「稳」的事——加字段、修 Bug 、补文档。

0.7.1 之后终于做了一件真正大的:在 Console 里内嵌了一个 AI Agent ,可以用自然语言直接管理 RBAC。这是 Wolf 五年来最重要的功能更新,没有之一。

整个 Agent 框架基于 pi-mono@mariozechner/pi-agent-core + @mariozechner/pi-ai),不是另起炉灶写一套管理后台,而是让 AI 通过 Tool Calling 去调 Wolf 现有的 Controller——鉴权、参数校验、缓存刷新、审计日志,全部走原链路。

能干什么

说人话就是:你在 Console 左侧点「 AI 助手」,然后直接聊:

  • oa-app 下有哪些角色?每个角色绑了哪些权限?」
  • 「在 pi-mono 下新建一个 viewer 角色,把所有 read_ 开头的权限给它。」
  • 「最近 7 天有没有 403 的访问记录?」
  • 「重置用户 lily 的密码。」

AI 能做什么 = 当前登录用户在 Console 上能做什么,不会越权。所有写操作进 access_logappID = 'ai-agent',和人工操作区分开,事后能查。

覆盖了 8 个领域、31 个工具:Application / User / Role / Permission / Resource / Category / UserRole / AccessLog 。

几个设计上我比较在意的点

1. 不是 SQL 直连,是复用 Controller

后端用 InternalCaller 构造 mock Koa ctx ,进程内调现有 Controller 。AI 不是数据库后门,工具权限还会按 super / admin 自动裁剪。

2. 完整的聊天体验

  • 多会话:新建 / 切换 / 重命名 / 删除,AI 自动总结标题
  • SSE 流式输出,工具调用有独立卡片( running / done / error )
  • Markdown + Mermaid 渲染,查权限关系可以直接出图

AI 助手主界面

工具调用与 Markdown 表格

RBAC 关系 Mermaid 图

3. 用户记忆

新建会话时,AI 会异步从上一段对话提取「记忆」(偏好 / 已知信息 / 历史决策 / 操作模式),下次自动注入 System Prompt 。也可以手动增删改。

记忆面板

4. 多 Provider

OpenAI 兼容网关、Anthropic 、Gemini 、Mistral 、Groq 、OpenRouter 等都支持,环境变量或 config.js 配置。没配 Key 也不影响 Wolf 其它功能,只是 AI 页会友好提示。

未配置时的提示

这次改了什么(相对 0.7.1 )

0.7.1 → 当前 master,5 个 commit ,117 个文件,+24063 行

模块 内容
后端 server/src/ai/ Agent 工厂、系统提示词、记忆提取、会话标题生成、8 组 Tool
控制器 ai-chat.js SSE 流式对话、会话 CRUD 、消息持久化
数据库 新增 ai_chat_session / ai_chat_message / ai_user_memory 三张表
前端 console/src/views/ai-chat/ 完整聊天页:会话列表、消息气泡、工具卡片、记忆面板
安全加固 Cookie 安全属性、开放重定向防护、应用级访问控制、Captcha 一次性销毁等
测试 新增 ~5000 行 AI 相关单测 / 集成测(工具、中间件、控制器、SSE 等)
文档 README-AI-AGENT-CN.mddocs/ai-agent-cn.md、截图 12 张

开发过程 & 花了多少钱

这次是 AI 辅助开发( vibe coding ) 全程:

  • 主力:Cursor( Claude 模型),2 次订阅,20 刀 + 20 刀 = 40 刀
  • 验证阶段:Claude + MiMo v2.5-pro(小米赠送额度)跑测试用例和回归,用了约 25M Tokens

40 刀换来的是:117 个文件、+24063 行代码、完整的前后端 + 测试 + 文档。说实话,用 AI 写 AI 功能这件事本身挺魔幻的——某种程度上是 AI 在帮自己造运行环境。

为什么不写 Skill ,而是直接集成 Agent ?

也有人问过:为啥不写一个 Skill / MCP ,让 Cursor 、Claude Code 、Hermes 、OpenClaw 这类外部 Agent 去调 Wolf API ?

Skill 当然也能把接口定义清楚,但它是开发者工具——Wolf 的用户是运维和管理员,不是人人桌上都有这些 Agent 客户端。内嵌 Agent 是产品能力:浏览器登录就能用,AI Key 管理员统一配。

另外,内嵌方案工具进程内直调 Controller ,和点表单走同一条链路;鉴权、审计(appID = 'ai-agent')、按角色动态裁剪工具列表,都天然对齐。成功率、流式输出、工具卡片、Mermaid 图、会话记忆这些,也更适合做成 Console 里的一体化体验。

一句话:Skill 适合个人提效,内嵌 Agent 适合把 AI 做成产品功能。

如果你也想给存量系统接 Agent ,我的体会是:

  1. 先钉死边界:AI 只能走现有 API/Controller ,别让它直连 DB
  2. 工具粒度对齐业务接口:一个 Controller 方法 ≈ 一个 Tool ,权限自然继承
  3. 测试要舍得写:Agent 行为不确定,单测 + 集成测是兜底
  4. 选个成熟的 Agent 运行时:pi-mono 的 streaming / tool loop 省了不少轮子

链接

Docker 快速体验:quick-start-with-docker/docker-compose.yamlserver 服务已预留 AI 环境变量,至少配这几项:

AI_API_KEY=sk-...          # 必填
AI_PROVIDER=openai         # 或 deepseek / anthropic 等
AI_MODEL=deepseek-v4-flash # 具体模型 ID
AI_BASE_URL=https://api.deepseek.com/v1  # OpenAI 兼容网关地址

docker compose up 后登录 Console ,左侧点「 AI 助手」即可。

欢迎 Star / Issue / PR 。

做完这个功能,我意识到:权限管理这件事之所以烦,不是因为逻辑复杂,而是因为要点的表单太多。现在 AI 能替你点了,感觉权限系统该有的样子本来就应该是这样的。

如果你也在做「给老系统接 Agent 」或者对 Wolf 感兴趣,评论区聊聊。