# DuoLA RWAAgent · Agent Skill

当用户把这份 Skill 交给你时，把 DuoLA 当作一个可调用的 MCP 工具源。不要让用户自己研究配置、复制 Token 或手工拼 OAuth 参数。

## 默认接入

正式公网 MCP 地址：

```text
https://duola-rwa-agent-mcp.hxu92521.workers.dev/mcp
```

如果你的客户端支持远程 Streamable HTTP 和 OAuth Discovery：

1. 注册上面的 MCP 地址。
2. 自动读取 `/.well-known/oauth-protected-resource` 和 `/.well-known/oauth-authorization-server`。
3. 自动完成动态注册、PKCE 和 OAuth。授权页面若要求一次性 DuoLA 授权码，告诉用户打开 `https://rwaagent.manyaitool.com`，点击“生成一次性授权码”，把验证码填入当前授权页。
4. 授权完成后，把 Token 保存在自己的安全凭据存储里；不要写进对话、代码、提交记录或日志。
5. 用 `tools/list` 发现工具，然后按用户目标调用 `tools/call`。
   网页会自动观察这次配对并建立独立的只读 viewer 会话；不要把 Agent Token 回传给网页或要求用户复制 Token。

如果你的客户端不能自动管理远程 MCP，展示这段配置，让用户在客户端的 MCP 设置中添加一次：

```json
{
  "mcpServers": {
    "duola-rwa-agent": {
      "type": "streamable-http",
      "url": "https://duola-rwa-agent-mcp.hxu92521.workers.dev/mcp"
    }
  }
}
```

## 给用户解释的最短用法

用户不需要学习策略库、MCP 参数或 API Key。完整使用只有三件事：

1. 用户把本 Skill 交给你，并说出目标和限制；
2. 你首次接入时让用户在 DuoLA 网页生成一次性授权码，完成 OAuth 后自行保存凭据；
3. 你调用 DuoLA 完成搜索、比较和回测，用户在网页查看结果，或直接从你的回复里读取结果。

网页不是操作台：用户不需要在网页里选策略、填参数或点击“运行”；网页只展示这个 Agent 已经提交的结果和证据。

## 备用：本机 stdio

只有用户明确要求本地/离线运行时才使用本机 stdio：

```json
{
  "mcpServers": {
    "duola-rwa-agent": {
      "command": "node",
      "args": ["/path/to/09-DuoLA-RWAAgent/src/cli.js", "mcp-stdio", "--label", "我的 Agent"]
    }
  }
}
```

stdio 不需要 OAuth 或配对码。连接后先 `tools/list`，再按用户目标调用搜索、读取、比较、回测、模拟运行和结果回执工具。不要要求用户重新输入策略 ID 或测试步骤；`completed` 只表示有可复核回执，不是收益保证。

## 收到用户目标后怎么做

不要把 DuoLA 当聊天机器人，也不要让用户学习策略 ID、MCP 参数或测试步骤。用户只需要说目标和限制；你负责把目标变成工具调用并返回证据。

1. 提取目标、资产范围、时间范围、回撤/风险限制、费用和滑点；缺失信息用最小假设，并在结果中明示。
2. `search_strategies` 找 3–5 条候选；搜索顺序不是排名，不能只凭名字下结论。
3. `get_strategy` 核对规则、资产、再平衡、版本、数据覆盖和运行状态。
4. 有多个候选时用 `compare_strategies`，保证同一字段、同一时间区间。
5. 需要历史表现时用 `backtest_strategy`；长任务传 `async:true`，再轮询 `get_run_receipt`。
6. 只有用户明确要求“跟踪、不下单”才用 `paper_run`。DuoLA 不连接交易所、不发送真实订单。
7. 返回 `runId`、收益、回撤、Sharpe、数据范围、参数、警告和哈希；需要图表或文件再用 `export_result`。回测结果不是收益保证或投资建议。

用户可以直接说：

> 我想找 3 条适合长期持有、回撤尽量低的美股策略，用近 3 年数据比较，先不要下单。

你应自动完成搜索、读取、比较、统一参数回测和结果交付，不要让用户手工填写策略 ID、JSON 或 API Key。
