内容
<div align="center">
<img src="assets/logo.svg" alt="Sturna" width="88" />
# 工具列表
**一套由六个AI代理组成的集群,可以在[罗宾汉链](https://docs.robinhood.com/chain/)上获取、评分、构建、风险检查、执行和监控一批代币化的私人市场和现实世界资产。**
[](https://github.com/tylerbroqs/sturna/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.typescriptlang.org/)
[](CONTRIBUTING.md)
[](#going-live-on-robinhood-mcp)
</div>
---
Sturna 是一个功能齐全的多代理投资台的参考实现:代理做出实际决策,投资组合以实际约束和风险数学构建和重新平衡。它通过小型HTTP API流式传输其推理,并在**纸质模式**下开箱即用(确定性模拟填充,无资本风险)。它是**MCP-ready** - 通过将凭证连接到罗宾汉的官方[代理交易MCP](https://robinhood.com/us/en/agentic-trading/)即可切换到实时。
> 该存储库是**开源引擎** - 代理集群、风险数学和API。它不附带前端;可以将API连接到任何客户端。
> **免责声明** - 标记、估值和链上指标是为纸质账簿模拟的。本项目仅用于研究和教育。 这里没有任何投资建议。
## 集群
代理作为接力管道运行 - 每个代理拥有完全一个决策:
| 代理 | 角色 | 功能 |
|-------|------|--------------|
| **侦察员** | 来源 | 摄取链上宇宙;强制托管、流动性和代币成熟度门控。 |
| **分析师** | 研究 | 根据五因素模型(增长/质量/动量/流动性/论题拟合度)对每项资产进行评分。 |
| **建筑师** | 建设 | 信念加权,波动性惩罚;按名称和行业上限;RWA压舱地板。 |
| **哨兵** | 风险 | 独立断路器 - 集中度、HHI、加权波动率、1天95% VaR。可以停止一个周期。 |
| **执行者** | 执行 | 目标与账簿之间的差异,通过罗宾汉MCP/链DEX路由最小周转订单。 |
| **管家** | 监控 | 在周期之间将账簿标记为市场,并标记超出容忍度的偏移。 |
```mermaid
flowchart LR
U[(代币化资产<br/>宇宙)] --> 侦察员
侦察员 --> 分析师 --> 建筑师 --> 哨兵
哨兵 -- 批准 --> 执行者 --> 管家
哨兵 -- 拒绝 --> H[停止周期<br/>无订单]
执行者 --> MCP[罗宾汉MCP /<br/>链DEX]
管家 -- 标记和漂移 --> U
```
## 架构
```
src/core/ 代理引擎(无框架TypeScript)
agents/ 侦察员 · 分析师 · 建筑师 · 哨兵 · 执行者 · 管家
mcp/ 罗宾汉适配器 - 纸质 + mcp-live场地
universe.ts 代币化私人/RWA资产宇宙(种子GBM价格路径)
orchestrator.ts 运行一个完整的集群周期,发出事件时间线
engine.ts 长期状态:投资组合,净值曲线,活动日志,指标
src/server/ Hono API,运行引擎并暴露控制端点
src/cli.ts 终端入口点 - 运行一个完整的集群周期
test/ Vitest单元测试套件(代理,引擎,协调器)
```
核心引擎具有**零框架依赖** - 它在Node和浏览器中运行相同,因此可以直接嵌入集群或通过API驱动。
## 快速入门
```bash
npm install
# 运行代理引擎 + HTTP API
npm run server # http://localhost:8787
# - 或 - 一个完整的集群周期的一次性终端测试(无需服务器)
npm run cycle
# 运行单元测试套件
npm test
```
将任何客户端指向API(参见 [API](#api))- 引擎是传输无关的。
## 在罗宾汉MCP上上线
`罗宾汉适配器`针对罗宾汉的官方代理曲面:
- **交易MCP** - `https://agent.robinhood.com/mcp/trading`
- **银行MCP** - `https://agent.robinhood.com/mcp/banking`
要路由真实订单:激活罗宾汉代理账户,设置`RH_MCP_TOKEN`,将引擎模式切换到`mcp-live`,并在`src/core/mcp/robinhoodAdapter.ts`(`executeLive`)中实现MCP客户端调用。这是一个配置 + 一个集成点 - 集群的其他部分保持不变。
## API
| 端点 | 描述 |
|----------|-------------|
| `GET /api/health` | 存活探测 |
| `GET /api/overview` | 指标、任务、代理、风险、适配器状态 |
| `GET /api/basket` | 实时投资组合和仓位 |
| `GET /api/nav` | 净值曲线与基准 |
| `GET /api/activity` | 代理推理流 |
| `GET /api/universe` | 代币化资产宇宙 |
| `GET /api/cycles` | 最近的周期摘要 |
| `GET /api/cycles/:id` | 某个周期的完整详细信息 |
| `GET /api/scores` | 最新分析师因素评分 |
| `POST /api/run-cycle` | 运行一个完整的集群周期 |
| `POST /api/mandate` | 切换任务并重新运行 |
## 贡献
欢迎贡献 - 新代理、风险模型、替代场地。从 [CONTRIBUTING.md](CONTRIBUTING.md) 开始,并注意 [行为准则](CODE_OF_CONDUCT.md)。良好的起点:
- **风险模型** - 扩展 `sentinel.ts`(预期亏损、压力情景、相关性集群)
- **因素研究** - `analyst.ts` 中的新信号
- **场地** - 除了 `RobinhoodAdapter` 之外的其他执行适配器
- **宇宙** - `universe.ts` 中更丰富的模拟资产动态
## License
[MIT](LICENSE) Sturna 贡献者版权所有