fa-bridge-sdk
FairyAction Bridge SDK — 用于开发 FAP (FairyAction Package) 应用的 Rust SDK。
概述
fa-bridge-sdk 是 FairyAction FAP 生态的开发者 SDK。它帮助开发者将原生工具包装为 AI Agent 可调用的能力单元,通过触桥(Bridge)协议与 FairyAction 运行时通信。
特点:
- 完全独立,不依赖 FairyAction 内部 crate,可独立发布到 crates.io
- 支持两种生命周期模式:Oneshot(CLI 调用)和 Persistent(长驻进程)
- Builder API 风格,简洁易用
- 自动处理协议消息的序列化/反序列化
快速开始
添加依赖
[]
= "0.1"
= "1"
最简示例
use ;
use Value;
运行:my-tool 打招呼 --名字 "FairyAction"
输出:"你好,FairyAction!"
两种模式
Oneshot 模式
每次调用启动新进程,从命令行参数读取输入,输出 JSON 到 stdout。适合无状态的 CLI 工具包装。
let app = new
.name
.version
.lifecycle
.domain;
调用方式:image-tool png2jpg --输入 photo.png --质量 90
Persistent 模式
长驻进程,通过 stdin/stdout 通信。适合需要状态管理或频繁调用的场景。
let app = new
.name
.version
.lifecycle
.domain;
启动:image-tool --serve
进程会通过 stdin/stdout 自动处理触桥协议消息,支持 hello 握手、call 调用、progress 进度通知、shutdown 关闭。
API 参考
App
应用构建器,SDK 的入口点。
new // 创建空应用
.name // 设置应用名
.version // 设置版本号
.lifecycle // 设置生命周期
.domain // 添加能力域
.run // 启动应用
Domain / Action / Param
new
.action
Handler 签名:Fn(Value, &ActionContext) -> Result<Value, Box<dyn Error>>
ActionContext
ctx.domain // 当前能力域名称
ctx.action // 当前动作名称
ctx.progress // 发送进度通知(仅 persistent 模式)
Lifecycle
Oneshot // CLI 模式
Persistent // 长驻进程模式
Both // 两种都支持(通过 --serve 参数切换)
与 FAP 生态集成
使用 fa-bridge-sdk 开发的应用需要打包为 FAP 格式才能被 FairyAction 运行时发现和调用。
- 编译你的应用为二进制
- 创建 FAP 包目录(含
manifest.json,mode 设为"sdk") - 使用
fairy-action fap pack打包 - 使用
fairy-action fap install安装
详细文档请参阅 FAP 开发者指南。
License
MIT