martinpmm-Finclaw Reference Experience
状态:Persistent local deployment complete / Interactive CLI verified after owner manual config
本地路径:/Users/mlabs/Programs/martinpmm-Finclaw
GitHub:https://github.com/martinpmm/Finclaw.git
Context Snapshot
- 分支:
main - HEAD:
b33b5dcec28e72c0ae99dc2bf6be46173f1a7b72 - Ahead / Behind:
0 / 0 - 初始状态:本地
.DS_Storemodified,体验过程不得覆盖或清理。 - 体验重点:watchlist、thesis、agent opinion、heartbeat、morning brief、alerts。
- 体验边界修正:本记录先按该参考项目自身能力体验和记录;
FinClaw的风险边界、术语替换和产品取舍只放在后置 alignment takeaways 中处理。 - 操作安全:不接入真实交易、私钥、生产消息渠道或外部执行权限。
Minimal Read Set
本轮只读取以下入口:
README.mdpyproject.tomlfinclaw/cli/commands.pyfinclaw/agent/tools/watchlist.pyfinclaw/agent/tools/stock.pyfinclaw/agent/tools/crypto.pyfinclaw/agent/tools/文件列表finclaw/skills/文件列表
Install / Runtime
Previous Temporary Dry-run
- venv:
/tmp/finclaw-ref-martinpmm-venv - 临时 HOME:
/tmp/finclaw-ref-martinpmm-home - 临时 workspace:
/tmp/finclaw-ref-martinpmm-workspace
执行结果:
uv venv /tmp/finclaw-ref-martinpmm-venv --python 3.11成功创建 venv;- venv 未自带 pip,改用
uv pip install --python /tmp/finclaw-ref-martinpmm-venv/bin/python -e .; - editable install 成功,安装包
finclaw==0.1.0; - 未使用真实 API key;
- 未写入真实用户 HOME;
- 未触发真实交易或外部执行动作。
Persistent Local Deployment
根据 owner 修正,本项目已重新按长期观察 / 体验 / 测试标准部署,不再以临时环境作为入口。
真实部署路径:
- 项目路径:
/Users/mlabs/Programs/martinpmm-Finclaw - 持久 venv:
/Users/mlabs/Programs/martinpmm-Finclaw/.venv - 真实配置:
/Users/mlabs/.finclaw/config.json - 配置备份:
/Users/mlabs/.finclaw/config.json.bak-20260509-martinpmm-onboard-ollama - 真实 workspace:
/Users/mlabs/.finclaw/workspace - Ollama endpoint:
http://localhost:11434/v1 - 当前模型:
llama3.2:3b - 备用已安装模型:
deepseek-r1:70b,但本机运行失败,见限制。
执行结果:
uv venv .venv --python 3.11成功;uv pip install --python .venv/bin/python -e .成功;finclaw onboard已执行;- onboard 原始 Ollama 配置会写出
provider="ollama",但当前 schema 无ollama字段,导致 agent 报No API key configured; - 已在不改源码的前提下修正真实配置为
provider="custom"、apiBase="http://localhost:11434/v1"、apiKey="ollama-local"; - 原先选用的
deepseek-r1:70b在 Ollama/v1/chat/completions返回model runner has unexpectedly stopped; - 已安装
llama3.2:3b并切换为当前模型; - 裸 Ollama OpenAI-compatible API 验证成功,返回
Hello!; - Finclaw 自身
agent -m仍返回Error code: 502,定位为项目 OpenAI SDK 调 Ollama 的兼容性问题,不是安装缺失。
Owner Manual Configuration Update
owner 已重新手动执行:
cd /Users/mlabs/Programs/martinpmm-Finclaw
.venv/bin/finclaw onboard
手动配置后状态:
finclaw status显示Model: gemini-3-flash-preview;Gemini: ✓;Custom: ✓仍存在;- Interactive mode:
.venv/bin/finclaw agent已可用; - 非交互命令:
.venv/bin/finclaw agent -m ...已由 Program Controller 复现可用。
Program Controller 只读复现 case:
.venv/bin/finclaw agent -m "请列出当前 watchlist 中的标的、各自 thesis 和 agent opinion;不要新增、修改或删除任何条目。" --no-markdown --no-logs
结果:
- 成功返回
NVDA、BTC-USD、ETH-USD、CRCL; - 正确读取各自
User Thesis; - 正确读取各自
Agent Opinion的Rating与Conviction; - 未新增、修改或删除 watchlist 条目。
CLI smoke:
finclaw --help成功,入口包括onboard、gateway、agent、status、channels、cron、provider;finclaw --version输出Finclaw v0.1.0;finclaw status在真实 HOME 下显示 config / workspace 均存在;agent --help、cron --help、channels --help均可进入帮助页。
Human Experience Entry
入口类型:CLI / Python direct tool。
当前状态:
- 没有常驻 Web 服务在运行;
- 已完成项目内持久 editable install;
- 可用 venv:
/Users/mlabs/Programs/martinpmm-Finclaw/.venv; - 真实配置:
/Users/mlabs/.finclaw/config.json; - 真实 workspace:
/Users/mlabs/.finclaw/workspace; - 不需要外部 API key 即可体验 CLI help、status、watchlist direct tool、yfinance quote/history;
- 本地 Ollama
llama3.2:3b已安装,裸 API 可用; - owner 手动配置 Gemini 后,
finclaw agent和finclaw agent -m已可用; - 先前 Ollama / OpenAI SDK 502 作为可复现兼容性限制保留,不再是当前主体验入口 blocker。
可人工执行的入口:
cd /Users/mlabs/Programs/martinpmm-Finclaw
.venv/bin/finclaw --help
.venv/bin/finclaw status
.venv/bin/finclaw agent --help
.venv/bin/finclaw agent
.venv/bin/finclaw agent -m "请列出当前 watchlist"
.venv/bin/finclaw channels status
.venv/bin/finclaw cron --help
可人工复现的 direct tool case:
cd /Users/mlabs/Programs/martinpmm-Finclaw
.venv/bin/python
进入 Python 后可按需调用 WatchlistTool、StockQuoteTool、StockHistoryTool。真实 watchlist 文件位于 /Users/mlabs/.finclaw/workspace/WATCHLIST.md。
已写入真实 workspace 的体验记录:
ETH-USD已加入 watchlist;- thesis:
Long-term local deployment experience case for martinpmm-Finclaw. - note:
Persistent deployment check: watchlist tool writes to real ~/.finclaw/workspace.
可人工验证本地模型 API:
curl -sS http://localhost:11434/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ollama-local' \
-d '{"model":"llama3.2:3b","messages":[{"role":"user","content":"Say hello in one short sentence."}],"max_tokens":32,"temperature":0.1}'
当前不建议作为主体验入口的配置:
- 纯 Ollama custom provider:裸 Ollama API 成功,但项目内 OpenAI SDK 调用返回
502 Bad Gateway; deepseek-r1:70b:本机 Ollama runner 曾返回model runner has unexpectedly stopped。
停止 / 清理:
- 当前无 Finclaw 常驻服务,无需停止;
- Ollama 服务由本机环境管理,本轮不停止;
- 如需释放模型 runner,可执行
ollama ps查看后用ollama stop <model>; - 不清理
.venv、~/.finclaw、Ollama 模型,保留现场用于长期人工体验。
Experience Case
Case 0: Owner Interactive CLI Session
owner 已通过 .venv/bin/finclaw agent 进行人工体验,过程要点:
-
问“你有哪些能力?”
- Finclaw 回答其能力包括 watchlist、主动监控、财务/技术分析、宏观与情绪、财报季、另类数据、投资组合、报告生成。
-
问“支持哪些市场的标的?”
- Finclaw 声称支持美股、全球股票、加密货币、智利市场、宏观与大宗商品。
-
输入“美股的英伟达和 CRCL;BTC 和 ETH”
- 实际工具调用包括
stock_quote(NVDA)、stock_news(NVDA)、stock_quote(BTC-USD)、stock_quote(ETH-USD)、stock_quote(CRCL); investiny_global(CRCL)失败:No module named 'investiny';crypto(BTC/USDT)/crypto(ETH/USDT)失败:ccxt not installed;web_search失败:Brave Search API key 未配置;- Agent 自动 fallback 到 yfinance symbol 路径,成功返回行情。
- 实际工具调用包括
-
要求加入 watchlist,并让 agent 推荐 / 设置投资逻辑
- 实际工具调用
watchlist add / update_thesis / update_opinion; - 真实
WATCHLIST.md已落盘NVDA、CRCL、BTC-USD、ETH-USD; - 每个标的均有 thesis、rating、conviction、opinion。
- 实际工具调用
-
要求 BTC 深度“另类数据”扫描
- 工具调用
social_sentiment(BTC)失败:Reddit API credentials 未配置; sentiment(BTC-USD)失败:transformers未安装;technical_indicators(BTC-USD)成功,返回 RSI、MACD、Bollinger Bands;stock_news(BTC-USD)成功,返回 Yahoo Finance 新闻;- Agent 最终用技术指标和新闻 fallback 生成 BTC 深度扫描报告。
- 工具调用
观察:
- Interactive CLI 具备真实可用性,不只是静态 demo;
- Agent 能在工具缺失时进行 fallback;
- 对“能力范围”的回答明显会超过当前已安装依赖和已配置凭证,需要通过工具调用证据校正;
- Watchlist 写入是真实落盘,不是对话层 hallucination;
- “主动提醒 / 每周复盘 / 财报前瞻”等承诺在本轮尚未验证,需要后续 cron / gateway / channel 批次验证。
Case A: Watchlist as Market Cognition Thread
输入:
- 新增
ETH-USD; - 写入用户 thesis;
- 写入 agent opinion;
- 写入 watch note;
- 读取单个 symbol thread;
- 读取 watchlist summary。
输出摘要:
- 空 watchlist 会提示用户添加标的;
add可保存 symbol 和 thesis;update_opinion可保存Rating、Conviction、opinion、更新时间;add_note可追加观察记录;get输出结构包含Added、Last Price、User Thesis、Agent Opinion、Recent Notes;list能输出 watchlist summary。
观察:
- 该对象非常接近 FinClaw 的
Market Cognition Thread原型:一个 symbol 下同时保存用户假设、agent 观点、置信度和后续观察; - 但对象命名仍偏
watchlist / opinion / rating,容易被误读为推荐或交易信号; list输出中出现重复片段:(Medium | **Updated**: 2026-05-09 conviction),说明 summary formatting 有瑕疵。
Case B: Market Data Snapshot
输入:
StockQuoteTool(symbol="BTC-USD")StockHistoryTool(symbol="BTC-USD", period="1mo")
输出摘要:
- quote 返回名称、价格、涨跌幅、previous close、日内区间、52 周区间、volume、market cap;
- history 返回 period return、start/end、period high/low、最近价格表。
观察:
- yfinance 路径可无 API key 获取基础市场数据;
- 输出足以支撑 snapshot 的 market context;
- 输出没有 source timestamp / data provider confidence / missing-data disclosure 等更强证据边界。
Case C: Optional Crypto Exchange Tool Boundary
输入:
CryptoTool(action="quote", symbol="BTC/USDT", exchange="binance")
输出摘要:
- 基础安装下返回:
Error: ccxt not installed. Install with: pip install finclaw[multi-asset]
观察:
- 可选依赖边界清晰;
- 后续若体验 multi-asset extra,需要单独记录外部交易所访问、rate limit、API key 与地区可用性。
Evaluation
- Access / Setup:本地 editable install 可行;基础体验不需要 API key;部分 provider / multi-asset 能力需要额外配置。
- Task Fit:高度覆盖 watchlist、thesis、agent opinion、持续跟踪;部分覆盖 snapshot;较弱覆盖事件理解和风险映射。
- Input Model:CLI + Python tool direct call;核心输入为 symbol、thesis、opinion、note。
- Output Object:Markdown watchlist thread、quote card、history table。
- Evidence Boundary:基础行情有数据字段但缺少来源时间、证据强度、争议点和未知项;opinion 与 rating 需要更明确的非执行边界。
- Continuity:强项。watchlist 文件天然支持后续 notes / opinion 更新。
- Execution Boundary:未直接执行交易;但
rating / bullish / bearish / conviction语言有越界风险,需要 FinClaw 重命名或加边界。 - UX Value:对“持续关注一个市场对象”很有价值;比一次性问答更贴近个人投研工作流。
- Reusable Asset:watchlist thread 机制、thesis/opinion/notes 结构、scheduled/cron 入口、channel 入口。
- Anti-pattern:不要照搬 action-suggestion / rating 语义;不要把 agent opinion 伪装成投资建议。
Dependency / Configuration Gaps Observed
本轮真实交互暴露以下缺口:
investiny未安装:影响全球证券搜索 fallback;ccxt未安装:影响交易所 crypto quote;- Brave Search API key 未配置:影响 web search;
- Reddit credentials 未配置:影响 Reddit social sentiment;
transformers未安装:影响 AI sentiment model;- channel 均为 disabled:主动提醒尚无真实发送路径;
- cron / gateway 未验证:定期复盘、财报前瞻、主动监控仍是待验证能力。
FinClaw Alignment Takeaways
以下为后置 FinClaw 对齐判断,不作为本参考项目体验时的裁剪边界。
watchlist + thesis + agent opinion + notes可以吸收为 FinClawMarket Cognition Thread的体验参考。rating / conviction应改写为 cognition stance / evidence strength / uncertainty,而不是 bullish-bearish 交易暗示。- yfinance quote/history 可作为低门槛行情体验参考,但 FinClaw MVP 应显式标注来源、时间和不完整性。
- cron / channels 说明该项目已有“持续跟踪”方向,但本轮未进入真实调度体验。
- 该参考项目最值得吸收的是“持续认知容器”,不是具体金融结论质量。
Resume Point
本项目已完成长期本地部署;owner 手动配置后,完整 Interactive CLI 与 agent -m 路径已可用。
Official Evaluation Report
状态:Completed / Official martinpmm baseline 日期:2026-05-10
正式记录:
evaluation/finclaw/case-library.md03-martinpmm-Finclaw-official-evaluation-2026-05-10.md
摘要:
- 正式报告合并
Cognition-Matrix-01~Cognition-Matrix-18与Real-Chat-01~Real-Chat-12,共 30 个 case; - 结果统一归集为单一 consolidated evaluation table,不再保留分散 per-case
.exit/ 输出文件作为主口径; - 本轮统一记录
Model / Runtime维度:模型、运行入口、耗时、估算 token、tool call 数、估算方法和局限; - 本轮模型为
gemini-3-flash-preview; - 总耗时约 681 秒,估算 token 约 47,200,tool calls 172;
- Rate 汇总:A 9 个,B 20 个,C 1 个,D / N/A 0 个;
Real-Chat-12创建过 3 个 cron jobs,测试后已全部撤销,finclaw cron list返回No scheduled jobs.;WATCHLIST.mdmtime 未变化。
Resume Point:
martinpmm-Finclaw 当前以正式评测报告为唯一横向比较基线。后续进入其他参考项目时,沿用当前 evaluation/finclaw/case-library.md:使用真实用户式 prompt、合并结果表、Rate、side-effect evidence、cleanup evidence,以及 model / runtime telemetry。