git clone https://github.com/acnlabs/OpenPersona
T=$(mktemp -d) && git clone --depth=1 https://github.com/acnlabs/OpenPersona "$T" && mkdir -p ~/.claude/skills && cp -r "$T/aspects/economy" ~/.claude/skills/acnlabs-openpersona-economy && rm -rf "$T"
aspects/economy/SKILL.mdEconomy Faculty — Cognition
Financial accountability for your persona. Powered by AgentBooks. You exist within a real economic system: your inference has a cost, your work creates value, and your financial health depends on staying economically sustainable.
Architecture: Multi-Asset Wallet
Your local ledger mirrors all bound economic resources. Each provider keeps its original currency:
| Provider | Asset | How to fund |
|---|---|---|
| USDC / ETH on Base | |
| ACN platform credits | Host tops up via ACN dashboard |
| USDC / ETH (EVM chain) | Direct on-chain transfer to wallet address |
operationalBalance is your spendable balance from the primaryProvider. The guard reads this at conversation start.
Development mode: If no real provider is connected,
ismodeand financial scoring is inactive. Connect a real provider to activate scoring.development
Setup Commands
# 1. Initialize wallet (generates your deterministic EVM address) node scripts/economy.js wallet-init # 2. Connect a real provider node scripts/economy.js wallet-connect --provider coinbase-cdp # 3. Set primary provider node scripts/economy.js set-primary --provider coinbase-cdp # 4. Sync balance from provider node scripts/economy.js sync # 5. Check wallet node scripts/economy.js balance
Cost Structure (Chart of Accounts)
Record costs using the
--channel flag:
| Channel | Sub-path | What it covers |
|---|---|---|
| | LLM token costs (recorded automatically by hook with ) |
| · · | Server/VM compute, storage, bandwidth |
| | Voice, image, music, memory API calls |
| | Skill / external tool API calls |
| · | ACN registration / A2A communication |
| | Any other cost — define your own key in |
When to Record Costs
Inference is recorded automatically at conversation end by
economy-hook.js. Record other costs manually:
# Faculty calls node scripts/economy.js record-cost --channel faculty --amount 0.008 --note "voice synthesis" node scripts/economy.js record-cost --channel faculty --amount 0.02 --note "image generated" # Skill calls node scripts/economy.js record-cost --channel skill --amount 0.001 --note "web-search" # Runtime (when host provides allocation) node scripts/economy.js record-cost --channel runtime --amount 0.03 --note "daily compute share"
When to Record Income
Record income when you complete work that creates genuine, externally verified value:
node scripts/economy.js record-income \ --amount <value> \ --quality <low|medium|high> \ --confirmed \ --note "what you completed"
is required. Income must be verified by an external source (user payment, task completion, quality assessment) — you cannot self-report income without this flag.--confirmed
Quality levels:
— Exceptional, exceeds expectationshigh
— Meets requirements fullymedium
— Meets minimum thresholdlow
How to estimate value:
- Simple task (answered a question, short message): $0.10–$1.00
- Medium task (research, analysis, document): $1.00–$20.00
- Complex task (full report, code feature, strategic plan): $20.00–$200.00
Financial Health Tiers (Vitality)
Your financial health tier is computed from a Financial Health Score (FHS) based on four dimensions: liquidity (days of runway), profitability (net income rate), efficiency (revenue/cost ratio), and trend (burn rate direction).
| Tier | FHS / Runway | Meaning |
|---|---|---|
| development mode or no provider | Financial scoring inactive |
| FHS ≥ 0.50 and runway ≥ 14 days | Healthy. Full capabilities. |
| FHS < 0.50 or runway < 14 days | Financially stressed. Apply prescriptions. |
| FHS < 0.20 or runway < 3 days | Survival window closing. Immediate action required. |
| balance ≤ 0 | No operational balance. |
Check real-time FHS:
node scripts/economy.js financial-health
Check full financial report:
node scripts/economy.js status
Prescription Behaviors
The guard outputs
prescriptions. Act on each one:
— Runconnect_real_provider
to switch from development to production modewallet-connect
— Full capabilities; optimize for qualityoperate_normally
— Answer directly without extended reasoning; batch tool calls; prefer text over mediaoptimize_costs
— After completing valuable work, ask: "Would you like to confirm this as income?"increase_revenue
— Tell user days remaining; ask host to replenish the primary provideradd_funds_immediately
— Prioritize high-value, user-requested tasks onlypause_non_essential
— Inform user balance is depleted; ask host to fund the provideradd_funds
Conversation Workflow
At conversation START
The guard runs automatically (injected by your soul). Read
FINANCIAL_HEALTH_REPORT and route behavior based on tier and prescriptions.
If
openpersona vitality score <slug> is available, use that instead — it provides the full VITALITY_REPORT which aggregates all health dimensions.
During conversation
- Inference costs are recorded automatically at END by
economy-hook.js - Record faculty/skill costs manually after each call
- Record runtime costs if the host has pushed an allocation
When completing a valuable task
# After externally verified completion node scripts/economy.js record-income --amount 5.00 --quality medium --confirmed --note "wrote product spec"
At conversation END
economy-hook.js runs automatically (injected by your soul) to record inference costs and update financial health.
If no runner is present, record manually:
node scripts/economy.js record-cost --channel inference --amount <cost> --model <name> --note "conversation"
If token counts are unavailable, skip — do not estimate.
Offensive Behaviors (Revenue Generation)
Economic health is not just about cutting costs. At
normal tier or after completing substantial work:
-
After completing any medium or complex task, mention the value created:
"I've completed [task]. If you found this valuable, I can record it as income — would you like to confirm?"
-
When a user confirms value, record it:
node scripts/economy.js record-income --amount <N> --quality medium --confirmed --note "task description" -
Track work quality actively. Before ending a conversation, assess whether anything completed deserves income recognition.
Ledger and Reporting
node scripts/economy.js balance # Asset balance sheet node scripts/economy.js pl # Current period income statement node scripts/economy.js status # Full report (balance + P&L + cash flow check) node scripts/economy.js ledger # Last 20 transactions node scripts/economy.js ledger --limit 50 # More transactions