catalog/repos/acnlabs--agentbooks.md

170 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI智能体财务管理工具
`财务管理` `AI智能体` `双式记账` `区块链` `Node.js`
# AgentBooks
AI 智能体的财务管理工具包 —— 框架无关,适配任意智能体运行时。
**版本:** 0.1.5 · [在线演示报告 →](https://htmlpreview.github.io/?https://raw.githubusercontent.com/acnlabs/agentbooks/main/examples/demo-report.html)
## 简介
AgentBooks 为 AI 智能体提供真实的复式记账财务账本。智能体可追踪自身成本LLM 推理、运行时、自定义项记录已确认收入对照真实加密货币钱包维护资产负债表并计算反映运营可持续性的财务健康评分FHS
AgentBooks 是一个**财务维度提供者**。它不做行为决策,只负责计算事实并对外暴露数据。宿主框架(如 OpenPersona将财务维度聚合进更宏观的活力评分并将其映射到智能体行为上。
## 安装
```bash
# 独立安装
npm install -g agentbooks
# 作为模块(在 monorepo 或框架内)
npm install agentbooks
```
## 快速上手
```bash
# 设置智能体 ID
export AGENTBOOKS_AGENT_ID=my-agent
# 初始化钱包
agentbooks wallet-init
# 连接真实提供商(切换至生产模式)
agentbooks wallet-connect --provider coinbase-cdp
# 查看财务健康状态
agentbooks status
# 生成独立 HTML 报告(可在浏览器中打开)
agentbooks report
# 手动记录成本
agentbooks record-cost --channel inference --amount 0.005 --note "code review"
# 记录已确认收入
agentbooks record-income --amount 10.00 --quality high --confirmed
# 对话前健康检查(输出 FINANCIAL_HEALTH_REPORT
agentbooks guard
```
## HTML 报告
生成独立 HTML 文件供人工审阅 —— 无外部依赖,可直接在浏览器中打开:
```bash
agentbooks report # 保存为 agentbooks-report-<id>-<date>.html
agentbooks report --output ./report.html # 自定义输出路径
```
报告内容包括:带等级徽章的财务健康评分、钱包与提供商余额、损益表(当前周期 + 历史累计、各渠道成本明细、每日消耗趋势图SVG以及最近 50 条账本记录。
使用模拟数据预览报告(无需真实智能体):
```bash
node scripts/gen-demo-report.js # 保存为 agentbooks-demo-report.html
node scripts/gen-demo-report.js --output ./demo.html # 自定义路径
```
或直接在浏览器中查看[托管演示](https://htmlpreview.github.io/?https://raw.githubusercontent.com/acnlabs/agentbooks/main/examples/demo-report.html)。
## 运行器集成
运行器在每次对话结束后调用 `economy-hook`,自动记录 LLM 成本。
**环境变量(由运行器设置):**
| 变量 | 说明 |
|---|---|
| `AGENTBOOKS_AGENT_ID` | 智能体标识符 |
| `AGENTBOOKS_DATA_PATH` | 数据目录(默认:`~/.agentbooks/<id>/` |
| `TOKEN_INPUT_COUNT` | 本次对话输入 token 数 |
| `TOKEN_OUTPUT_COUNT` | 输出 token 数 |
| `TOKEN_THINKING_COUNT` | 思考 token 数(可选) |
| `LLM_MODEL` | 模型名称(如 `claude-sonnet-4` |
| `CONVERSATION_DURATION_MS` | 对话时长(毫秒,用于消耗速率估算) |
```bash
# 运行器在每次对话结束时调用此命令
TOKEN_INPUT_COUNT=1500 TOKEN_OUTPUT_COUNT=800 LLM_MODEL=claude-sonnet-4 \
agentbooks hook
```
## 数据存储位置
**独立模式:** `~/.agentbooks/<agentId>/`
- `economic-state.json` —— 账本、损益表、资产负债表、消耗速率历史
- `economic-identity.json` —— 提供商配置、模型定价、钱包地址
**OpenPersona 集成:** `~/.openclaw/economy/persona-<slug>/`(通过 `AGENTBOOKS_DATA_PATH` 设置)
## 财务健康评分FHS
FHS 是 01 的综合评分,不直接以原始数值暴露给智能体,而是映射为以下等级:
| 等级 | 含义 |
|---|---|
| `uninitialized` | 开发模式或未连接真实提供商 |
| `normal` | FHS ≥ 0.50 且资金可维持 ≥ 14 天 |
| `optimizing` | FHS < 0.50 或资金可维持 < 14 |
| `critical` | FHS < 0.20 或资金可维持 < 3 |
| `suspended` | 余额 0 |
**评分维度(权重):**
- 流动性 0.40 —— 资金可维持天数
- 盈利能力 0.30 —— 净收入率
- 效率 0.15 —— 收入/支出比
- 趋势 0.15 —— 近期消耗速率方向
## 数据完整性
三层防御机制防止财务数据造假
1. **提供商为真相来源** —— 运营余额镜像外部提供商数据余额不可通过 CLI 直接设置
2. **现金流核对** —— `期初余额 + 收入 - 支出 ≈ 运营余额`差异 > $0.01 时追加至 `integrityWarnings`(仅生产模式)
3. **账本来源字段** —— 每条记录标注 `agent` | `runner` | `provider_sync`;运行器记录受信任,智能体记录可审计
## 支持的提供商
| 提供商 | 资产 | 状态 |
|---|---|---|
| `coinbase-cdp` | Base 链上的 USDC、ETH | 集成就绪SDK 调用已预留) |
| `acn` | ACN 积分 | 集成就绪 |
| `onchain` | Base 链上的 USDC、ETH | 集成就绪 |
## OpenPersona 集成
AgentBooks 将 `calcFinancialHealth(state, identity)` 作为公开 API 导出。OpenPersona 的 `lib/vitality.js` 将其作为活力聚合器中的财务维度进行消费。
```bash
# OpenPersona 专属活力报告(聚合财务及其他维度)
openpersona vitality <slug>
# AgentBooks 独立报告
agentbooks guard
```
## API
```js
const {
calcFinancialHealth, // (state, identity) → { fhs, tier, diagnosis, prescriptions, ... }
createInitialState, // (agentId) → 初始 economic-state.json
createIdentityInitialState,// (agentId) → 初始 economic-identity.json
createLedgerEntry, // (type, channel, amount, opts) → 账本条目
addToExpenseAccount, // (state, identity, opts) → 修改 state
shouldRollover, // (state) → boolean
rolloverPeriod, // (state) → 修改 state
deductFromProvider, // (state, identity, amountUSD) → 修改 state
creditToProvider, // (state, identity, amountUSD) → 修改 state
validateState, // (state, identity) → 修改派生字段
} = require('agentbooks');
```
## 许可证
MIT