公网可访问的实例必须先设 HUNTER_SETUP_TOKEN,否则谁先打开谁就能配置大模型;A 股免费行情需在 .env 设 DATA_SOURCE_PROVIDER=akshare,留空默认走平台数据管道;从 v1.0.x 升级且装过 SKILL 或导入过数据包的老用户必须跑一次 scripts/migrate-volumes.sh,否则 SKILL 会从界面消失。

hunter-community
agentpit-ioApache-2.0活跃维护本地自托管的多智能体投研终端,覆盖 A 股、港股、美股,推理和数据都在自己机器上跑,用 BYOK 接入模型,可作为腾讯 WorkBuddy 金融版的开源替代。
HunterCode · Community Edition · 腾讯 WorkBuddy 金融版的开源本地替代方案 · open-source, local alternative to Tencent WorkBuddy Finance Edition · 多智能体投研终端 A股/港股/美股 · 推理在你机器上跑 · 仓位不出你硬盘 · BYOK · Apache 2.0 · docker compose 自托管
git clone https://github.com/agentpit-io/hunter-community
cd hunter-community
docker compose up -d
open http://localhost:3100需 Docker Desktop(Windows/macOS)或 Docker Engine + Compose v2(Linux);磁盘 10 GB、内存 4 GB(实测峰值约 1.3 GB);镜像同时提供 amd64 与 arm64,Apple Silicon 与 arm 云主机原生运行。README 未提及 GPU 或显存要求。
自部署的 AI 投研助手,覆盖 A股/港股/美股,数据和对话都留在自己机器上
本地自托管的多智能体投研终端,覆盖 A 股、港股、美股,推理和数据都在自己机器上跑,用 BYOK 接入模型,可作为腾讯 WorkBuddy 金融版的开源替代。
核心能力
- 多智能体投研终端,支持 A股/港股/美股行情与个股深度分析
- 按用户编写的 SKILL 方法论工作,可接入自有数据源与 MCP
- 对话、持仓、投资论点全部存本地数据库,仓位不出硬盘
- 支持 BYOK,可接 DeepSeek 或任意 OpenAI 兼容网关
- docker compose 自托管,六个服务走预构建镜像,含首启向导
容易踩的坑
- v2.2.1最新正式版2026-10-14 · 2026-10-14 09:53 UTC
补丁版本 · 修复谷歌 4.0(Gemini 4 Argon)模型名称显示并新增全链路大模型调用日志跟踪与导出。
改了什么:
- 修复升级后聊天框右下角模型选择器仍显示别名
hunter-chat的问题,现明确展示Hunter-Gemini 4 Argon(谷歌 4.0),且opencode、web、api、llm-shim镜像随版本同步重建; - 新增全链路大模型调用过程日志输出与跟踪(
GET /api/setup/llm/logs及设置页「大模型」面板),支持一键实测模型并下载脱敏.log诊断文件用于问题排查上传。 HUNTER_VERSION/FIN_TAG默认值2.2.0→2.2.1(docker-compose*.yml的镜像 tag 同步)。
升级:
.env的HUNTER_VERSION与FIN_TAG一起改2.2.1,再docker compose --profile fin pull && docker compose --profile fin up -d。
Container images(amd64 + arm64 · 匿名可拉):
ghcr.io/agentpit-io/hunter-community-api:v2.2.1ghcr.io/agentpit-io/hunter-community-web:v2.2.1ghcr.io/agentpit-io/hunter-community-opencode:v2.2.1ghcr.io/agentpit-io/hunter-community-llm-shim:v2.2.1
- 修复升级后聊天框右下角模型选择器仍显示别名
- v2.2.02026-10-14 · 2026-10-14 04:30 UTC
查看更新说明
次版本 · 内置与默认的谷歌模型升级到
gemini-4-argon。 谷歌 2026-10-13 正式发布gemini-4-argon(旗舰推理模型,100 万上下文)。 本版把开源版代码里写死的默认模型名从gemini-3.5-flash换成它。⚠️ 谁受影响:只在没配环境变量、也没走首启向导的部署上才看得出来 —— 这两条路都会把模型名写进
.env/ 数据库,而它们优先级高于代码默认值。 已经按向导配好的实例升级后行为不变(除非你希望一起换,那就像下面那样手动改)。改了什么(只改「默认值」,不改任何业务逻辑):
api里所有os.getenv("ONE_API_MODEL", ...)与runtime_config.agent_model(..., 兜底值)的兜底值:gemini-3.5-flash→gemini-4-argon(深度档的兜底gemini-3.1-pro-preview一并改)。quant/screen_nl.py的GEMINI_PIN(选股脚本锁定模型)→gemini-4-argon。 原来的锁是为了绕开「恰好 2 条消息的短对话返 400」那个历史坑;已实测gemini-4-argon在同样 2 条消息下正常返回,锁继续保留。.env.example/.env.personal.example的说明文字、首启向导的 mock 网关、e2e 用例里的模型名。HUNTER_VERSION/FIN_TAG默认值2.1.0→2.2.0(docker-compose*.yml的镜像 tag 同步)。
没动什么(有意为之):
data/llm-presets.json里那张 AIHubMix 预置卡 (gemini-3.5-flash-aihubmix)保持原样 —— 它指向的是第三方网关aihubmix.com, 那边的模型目录由对方决定,跟我们无关。同理docs/env-samples/.env.aihubmix.example。没有数据库迁移,没有新增环境变量。动到
api镜像;其余镜像代码未改,版本号随发版一起走。升级:
.env的HUNTER_VERSION与FIN_TAG一起改2.2.0,再docker compose --profile fin pull && docker compose --profile fin up -d。 只想换模型、不想换镜像的:在.env里显式写LLM_DEFAULT_MODEL=gemini-4-argon(以及各AGENT_*/SIGNAL_ANALYSIS_MODEL),docker compose up -d api即可。
Container images(amd64 + arm64 · 匿名可拉):
ghcr.io/agentpit-io/hunter-community-api:v2.2.0ghcr.io/agentpit-io/hunter-community-web:v2.2.0ghcr.io/agentpit-io/hunter-community-opencode:v2.2.0ghcr.io/agentpit-io/hunter-community-llm-shim:v2.2.0
- v2.1.02026-10-05 · 2026-10-05 06:03 UTC
查看更新说明
次版本 · 智能炒股「策略自动生效 + 默认自学习」(
L12–L15)。 到这版为止,「提建议 → 影子验证 → 应用」这三段是全自动的(前两段四期就有,本版补上最后一段); 并且新装一台机器默认就是「会自己学、自己改、自己跑(模拟盘)」。⚠️ 行为上的大变化(请先读这一段再升级):三个开关的代码默认值从「关」改成「开」——
FIN_MEMORY_ENABLED(攒经验)默认1、FIN_EVOLUTION_MODE(学习强度)默认paper、FIN_AUTO_APPLY(自动生效)默认1。已经显式设了这几个环境变量的部署不受影响(.env里的值仍然优先)。 这正是这次要的产品形态,但升级前请确认你希望它默认自己学、自己用上验证通过的改进。FIN_LIVE_ORDER_ENABLED仍然硬锁死为0:非 0 → 服务端直接拒绝启动 / 请求,本版一个字没动。 系统只跑模拟盘,自动生效改的是模拟盘的策略参数,不会下真单。内置纪律:只对「收紧」方向自动放行(调小仓位、收紧止损、缩短持仓天数…)。 放宽 / 混合方向仍要人点「确认」;风控类参数(
target='risk')一律不走自动路径。 六条质量闸门、版本链核验、唯一参数写入口(control.py)一条没减、一条没改宽。新增两个数据库迁移
0054(执行允许名单补齐,L11b;判据改为「从未登记过」)·0055(fin_memory_switch加auto_apply列,L12)—— 只做加法、可重复执行。 台账从 54 个文件 / 54 行(max = 0053_collection_complete.sql)走到 56 个文件 / 56 行 (max = 0055_auto_apply_switch.sql)。动到
api/fin-worker/web三个镜像(llm-shim/opencode代码未动,版本号随发版一起走)。 没有新增环境变量(FIN_AUTO_APPLY从「必须为 0」变成真开关,但它本来就在)。升级:
.env的HUNTER_VERSION与FIN_TAG两个旋钮一起改2.1.0,再docker compose --profile fin pull && docker compose --profile fin up -d(--profile fin必须带)。 逐步清单见docs/开发文档/L15-上线与整合报告.md(含回滚一步)。⚠️ 升级前先备份:
pg_dump -Fc记下路径 / 大小 /sha256/ PG 版本 /schema_migrations行数。 本版只加列、不改任何历史行。⚠️ 老部署平滑升级(
L11):执行凭证(HUNTER_EXEC_KEY)缺失时回退到读取凭证、 建项目时自动放行一条执行名单 —— 详见docs/开发文档/L11-老部署平滑升级.md。✨ 新增 · Added
L12· 开关改造。 三个默认值改「开」(见上);FIN_AUTO_APPLY移出硬开关名单,成为可开可关的真开关, 并支持按项目覆盖(沿用经验库 / 学习强度那套「生效值 = 天花板 ∩ 天窗,取更保守」的算法, 环境变量是部署者意志的天花板,界面选择是天窗)。新增ceiling_auto_apply()/auto_apply_effective(); 旧的auto_apply()删除改名(不留两个同名含义的函数)。迁移0055_auto_apply_switch.sql。L13· 自动生效链路。fin.shadow(影子盘验证)判出verdict == 'passed'之后自动把验证通过的 收紧方向改进应用到模拟盘:新增内网入口POST /internal/fin/evolution/{id}/auto-apply(X-Hunter-Internal-Key)+ fin-worker 活动auto_apply(永不抛异常,不重试)。 留痕清楚:事件actor='system:auto-apply'、payload.auto=true、参数改动日志actor同源 —— 一眼能看出是「系统自动」而不是人做的。L14· 界面与向导。 「自动生效」在成长页横幅上从只读死文字变成可点的真开关(与「经验库」并排, 切完不刷新立刻生效、含后端同枪核对);开户向导第 7 步第一次开户就能看到它(默认开)、随时能关。scripts/r21_browser_check.mjs相应改成新口径(38 条断言全绿)。
🛡 安全垫(本版保留未动)
- 实盘字段黑名单 · 生效前的六条质量闸门 · 「验证通过」这一关 · 自动回滚(跌破回滚线退回上一版)·
一切改动走唯一写入口
control.py· 只追加、留痕。 - 新机器短期内不会有自动生效发生:触发依赖影子验证的样本量(默认 ≥20 个可比样本、20 个交易日窗口), 这是质量要求决定的,不是没生效。
Container images(amd64 + arm64 · 匿名可拉):
ghcr.io/agentpit-io/hunter-community-api:v2.1.0ghcr.io/agentpit-io/hunter-community-web:v2.1.0ghcr.io/agentpit-io/hunter-community-opencode:v2.1.0ghcr.io/agentpit-io/hunter-community-llm-shim:v2.1.0
- v2.0.02026-10-04 · 2026-10-04 20:40 UTC
查看更新说明
主版本 · 智能炒股「五期 · 闭环补齐」(
L01–L10)。 一/二/三/四期把「能跑、能记账、能学、能提案」做完了,五期补的是最后几块不闭环的地方: 自动闭环只闭了一半(会复盘、会验证,但不会自己把经验变成提案)· 策略没有身份与版本锁 · 决策缺「当时看到了什么、用什么模型算的」的时间字段 · 账本缺部分成交 / 成交量约束 / 停牌 / 公司行为 / 逐市场 tick · 行情口令与下单口令是同一把、放行靠拒绝名单 · 报告只有站内一个出口且「发出去没发出去」从不写 · 外面没法启动 / 查询 / 暂停 / 取消工作流 · 新闻 / 基本面没接定时采集、情绪完全无表。 本期把这几块一一补齐,并把全过程整合成一份自包含 HTML(docs/开发文档/五期-闭环补齐-整合报告.html)。新增七个数据库迁移
0047–0053(只做加法、可重复执行、不改任何历史行、文件内不带BEGIN;/COMMIT;), 由api启动时按schema_migrations账本增量自动执行。台账从 47 个文件 / 47 行 走到 54 个文件 / 54 行(max = 0053_collection_complete.sql)。动到
api/fin-worker/paper三个镜像(web/llm-shim/opencode代码未动,版本号随发版一起走)。新增两个环境变量:
HUNTER_EXEC_KEY(下单执行凭证,与行情读取的HUNTER_INTERNAL_KEY分开; 都没有默认值,缺任一paper/fin-worker拒绝启动)。默认值没变:FIN_MEMORY_ENABLED=0/FIN_EVOLUTION_MODE=off/FIN_AUTO_APPLY=0/FIN_LIVE_ORDER_ENABLED=0。升级:
.env的HUNTER_VERSION与FIN_TAG两个旋钮一起改2.0.0,再docker compose --profile fin pull && docker compose --profile fin up -d(--profile fin必须带, 否则paper/fin-worker不参与重建)。逐步清单见docs/开发文档/L10-五期上线与整合报告.md(含回滚一步)。⚠️ 升级前先备份:
pg_dump -Fc记下路径 / 大小 /sha256/ PG 版本 /schema_migrations行数。 本版只加表加列、不改任何历史行。⚠️
HUNTER_EXEC_KEY是本期新加的必填项:老.env里没有它,升级后paper/fin-worker会因为缺凭证拒绝启动 —— 先在.env里生成一个(openssl rand -hex 32)再up -d。✨ 新增 · Added
L01· 「经验 → 提案」接上(fin.propose工作流 + 「实验」实体)。 原来那个能提提案的POST /internal/fin/evolution/proposal写好了却全仓没有调用方(自动闭环只闭了一半)。 现在fin.propose是 Temporal Schedule 里的一条(不另起 cron / 线程定时器), 按市场、对进行中的项目自动、有闸门地把可用经验变成提案;并补出**「实验」实体** (方案 §12 时间线里缺的那一格「样本外 / 滚动验证」)。只自动「提」,不自动「生效」 ——FIN_AUTO_APPLY恒 0 未动,生效仍要人工confirm=true。迁移0047_evolution_experiment.sql。L03· 决策「出身证」。 补 §6.2 的缺失时间字段(available_at/revision_id/decision_as_of)· §10.2 的DataSnapshot对象 · §10.3 的决策上下文(execution_model_version/ 显式mode/portfolio_version)。 拿不到真值的一律NULL(红线 5),不拿now()/ 自增号 / 默认值冒充。迁移0048_decision_provenance.sql。L04· 自有策略服务。 「策略定义」这一层原来根本没有:唯一的策略是写死的示例策略,身份是fin_param.strategies里一个可被任意改写的自由字符串。现在有只追加的登记表 + 内容哈希 + 触发器锁版本, 外加strategy.submit/strategy.get/strategy.cancel三个正式入口;示例策略降级为一个登记在册、 可被替换的内置策略(不删 —— 个人本地开源部署靠它开箱可用)。迁移0049_strategy_registry.sql。L05· 账本补齐五项。 ① 成交量约束真的读liquidity_max_participation(成交股数 ≤floor(盘口量 × 参与率)); ② 部分成交part_fill开关真的生效(开着成交一部分 + 剩余挂着;关着行为逐字节不变); ③ 停牌fin_instrument.halted+ 风控先读它 + 拒单;④ 公司行为只追加事件表fin_corporate_action+ 账务(分红入现金 / 拆送股调股数与成本);⑤ 逐市场 tick (标的 → 市场分档 → 全局回落三级解析,三市场各不同,替掉原来写死的全局0.01)。 停牌 / 公司行为数据源没有 → 只做「状态位 / 事件表 + 账务 + 人工登记入口」,如实标注「数据源未接」,一个字节都没编。 迁移0050_account_ledger_complete.sql。L06· 凭证分离 + 执行允许名单(默认拒绝)。 两把钥匙分开:行情读取用HUNTER_INTERNAL_KEY, 下单执行用新的HUNTER_EXEC_KEY(两个不同环境变量、都没有默认值)。门改成「允许名单」:paper会改账本的四个端点入口先查新表fin_exec_allowance(只追加)—— 空名单 = 谁都不许, 要显式登记才放行(POST /api/v1/exec-allowances)。实盘字段的拒绝名单(LIVE_FIELD_DENYLIST) 继续保留,两道防线都在。GET /healthz多报一个执行允许名单现行条目数。迁移0051_exec_allowance.sql。L07· 发布适配器 +UNKNOWN待核实。 发布从生成流程里拆出来独立一步、渠道走适配器:in_app(原样搬,行为不变)· 通用webhook·file落盘(记路径 +sha256)。 只做这三个,不接任何要注册 / 要付费 / 要审资质的第三方内容平台。新增publish.submit/publish.get两个入口,回执统一落fin_publish_receipt。UNKNOWN待核实 + 不盲目重发:超时 / 回执不明 → 写UNKNOWN并进待核实队列;UNKNOWN下再发同一份报告拒绝(除非显式「重发」标记且留痕)。 补上故障注入第 7 项(「内容已发布,但返回超时或网络断开」)。迁移0052_publish_adapter.sql。L08· 控制通道 + MCP 控制类 + 长任务取消。 四个控制入口runtime.workflow_start / get / pause / cancel(只认白名单模板名 + 类型化参数,不接受任意代码或 shell;状态从 Temporal 现查,不另存一份; 四个都幂等)。新增一个控制类 MCP(scripts/opencode-mcp/runtime_mcp.py), 在gen-config.py里与数据类 MCP 分开登记 —— 这就是方案 §6.3 的「控制通道与数据通道分离
- v1.8.02026-10-04 · 2026-10-04 17:08 UTC
查看更新说明
次要版本 · 把「经验库开关」从
.env搬上界面(按项目)。1.7.0那条链本来就能学,但「要不要学」这个总闸只藏在环境变量FIN_MEMORY_ENABLED里: 想开要改.env、还得up -d(不是restart)、六步操作,而且四个开关一个都不留痕。 本版让你在成长页和设置向导第 7 步直接点:按项目设,点完立刻生效(不用重建容器), 每次改动都留一行流水账。环境变量仍是天花板(部署者的意志),界面是天窗(使用者的日常选择): 部署侧把FIN_MEMORY_ENABLED设成0时,界面上的开关是灰的、写接口直接400—— 界面永远开不出部署者不允许的东西。 顺手修了一个隐性浪费:经验库关着时,复核工作流不再先调一次模型再被拒(原来那一次模型调用白烧)。新增一个数据库迁移
0046_memory_switch.sql(两张表:fin_memory_switch现值 +fin_memory_switch_log纯追加流水), 由api启动时按schema_migrations账本增量自动执行,只做加法(CREATE TABLE IF NOT EXISTS)、 可重复执行、不改任何历史行、文件内不带BEGIN;/COMMIT;。 台账从 46 个文件 / 46 行 走到 47 个文件 / 47 行(max = 0046_memory_switch.sql)。动到
api/web两个镜像:api(switches.py加覆盖层 +switch_meta()展示表 ·fin_runtime.py新写入口与只读接口扩展 ·fin_review.py的「关着不烧钱」守卫 ·memory.py/evolution.py按项目判闸)·web(共用组件RuntimeSwitchPanel+ 成长页 ④ + 向导第 7 步)。fin-worker/paper/llm-shim/opencode代码未动,版本号随发版一起走。升级:
.env的HUNTER_VERSION与FIN_TAG两个旋钮一起改1.8.0,再docker compose --profile fin pull && docker compose --profile fin up -d(--profile fin必须带, 否则paper/fin-worker不参与重建)。逐步清单见docs/开发文档/R21-开关上界面·发版与演示站验收.md(含回滚一步)。⚠️ 升级前先备份:
pg_dump -Fc记下路径 / 大小 /sha256/ PG 版本 /schema_migrations行数。 本版加两张新表、不改任何历史行;记忆层是可审计数据,备份与恢复演练的做法随1.6.0交付(docs/开发文档/R4)。默认值没变:出厂默认仍是关(
FIN_MEMORY_ENABLED=0/FIN_EVOLUTION_MODE=off)。 本版给的是「想开的时候有个地方点」,不是「默认打开」。✨ 新增 · Added
- 迁移
0046_memory_switch.sql:按项目的经验库开关(现值 + 流水账)。 造型照抄既有的fin_param/fin_param_change_log:fin_memory_switch(现值 · PKproject_id·memory_enabled/evolution_mode两列可空,NULL= 这个项目还没单独设过、跟随部署侧默认)+fin_memory_switch_log(纯追加 · 无UPDATE/DELETE·switch_key/old_value/new_value/actor/reason(必填)/created_at)。evolution_mode有CHECK约束;project_id不建外键(流水账要活过项目本身)。两个硬开关不进这张表 —— 它们连界面入口都没有。 - 写入口
POST /v1/fin/runtime/switch(R21的唯一写入口)。 body{project_id, switch_key, value, reason}, JWT + 项目归属校验(跨用户 / 不存在一律404,不区分两者、不泄露存在性)。 四条硬规矩写在服务端、不靠界面自觉:硬开关 key → 400(且库里零写入)· 超天花板 → 400(报错写清天花板是多少)·reason必填 · 没变就不写(changed=false,流水账记的是「改动」不是「点了一下」)。 改完立刻生效(写入口主动清 5 秒 TTL 缓存),不需要重建 / 重启任何服务。 - 前端共用组件
RuntimeSwitchPanel(表驱动 · 前端零枚举)。 成长页 ④ 与向导第 7 步共用; 可选项、短标签、长说明、「为什么灰」的提示全部来自后端GET /v1/fin/runtime的meta—— 前端不写死任何枚举 / 中文名(R9既有纪律)。天花板之上的选项画灰、点不动(服务端另外还会 400 —— 两道一起拦)。
🔧 变更 · Changed
switches.py加覆盖层:环境变量是天花板,fin_memory_switch是天窗。memory_enabled(project_id)/evolution_mode_requested(project_id)的生效值 = 天花板 ∩ 天窗, 取更保守的一个(0 < 1、off < observe < paper)。不带project_id时就是天花板、行为逐字节不变(老调用点一个没动)。 覆盖层读库带 5 秒模块级 TTL 缓存(热路径上挡住库往返);库不通 / 表还没迁移 / 行读坏了 → 回落环境变量(fail-safe,绝不「猜一个」)。 覆盖层只活在这一个文件里 —— 读点仍是一处(守护用例盯着)。- 只读接口
GET /v1/fin/runtime扩展(老字段一个没改)。 新增project_id/ceiling(部署侧允许到哪)/selected(界面上选了啥,null= 没设过)/can_change(这一项能不能改)/meta(给前端的展示表)。 带project_id时memory_enabled/evolution_mode*是这个项目的生效值(天花板 ∩ 天窗); 不带时就是天花板值,老调用点行为逐字不变。 - 复核不再「关着也烧钱」。
routers/fin_review.py的review/propose在经验库关时直接返回空候选、不调模型 (原来会先调一次模型写候选,最后一步才被唯一写入口拒掉 —— 那一次模型调用白烧,且503会让 Temporal 重试、可能被重放)。 守卫排在模型调用之前,fin-worker一行不用改(R20实测:模型 0 次调用、worker 不报错 / 不重试)。 evolution.py的提案闸门按项目判(propose用evolution_enabled(project_id));apply_proposal/rollback_proposal仍只看天花板 —— 把学习关掉不该让已经走到验证中途的提案变孤儿(故意的不对称,写进R20成果文档)。memory.py的MemoryDisabledError文案点名是哪个闸(既有断言盯着):同时提FIN_MEMORY_ENABLED=0与本项目开关。.env.example/.env.personal.example/docker-compose*.yml的版本旋钮升到1.8.0。
🆕 新增环境变量 · Added env
无。 这四个
FIN_*开关的口径没变 —— 只是从「只能改 env」变成「env 是天花板、界面是天窗」。FIN_MEMORY_ENABLED/FIN_EVOLUTION_MODE的默认值仍是 `0 - 迁移
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🌏 中文(当前)· English
HunterCode
Community Edition
自部署的 AI 投研助手 · A股 / 港股 / 美股 · 数据和对话都在你自己的机器上
HunterCode 是腾讯 WorkBuddy 金融版的开源本地替代方案 · 面向私募与专业个人投资者 腾讯、WorkBuddy 是腾讯公司的商标。HunterCode 与腾讯公司无隶属、合作或授权关系。
🚀 在线演示 · ⚡ 5 分钟部署 · 📖 产品说明书 · 帮助中心 · 快速开始 · 💬 讨论区
🔥 2026-10-14 全线升级:全面支持谷歌 10-13 发布最强模型 Gemini 4 Argon(gemini-4-argon) —— 自 v2.2.0 起内置免费额度与默认谷歌模型已切换为旗舰推理模型 Gemini 4 Argon(百万级上下文 · 多步深度推理) · 阅读升级详解
🏆 入围世界人工智能开源大赛(GOAI)总决赛 · 赛道二 TOP 15 · 与 WorkBuddy 金融版逐项对比(附官方来源) · 完整演示视频 3 分钟(2026-09-19 录制)
⚠️ 免责声明:本项目是投研分析工具,所有输出为 AI 生成内容,仅供研究参考,不构成任何投资建议。投资有风险,决策需谨慎。
⏱ 30 秒看懂
它是什么 —— 一个跑在你自己电脑或服务器上的金融 AI 助手。你给它一个大模型 key,它就能查行情、拉新闻、做个股深度分析、预测走势、管理自选和持仓,并按你写的 SKILL(分析方法论)工作。对话、持仓、投资论点全部存在本地数据库。
它不是什么 —— 不接券商交易,不替你做决策,不保证预测准确。它是把公开数据、分析方法论和大模型组织起来的研究助手。
适合谁 —— 会用 Docker 的个人投资者、私募研究员、小型量化团队;想掌控自己的数据,或想把自己的数据源和方法论接进来的人。
☁️ 一键部署到云平台
不想自己管服务器的,可以直接部署到下面这些平台,部署完打开域名走一遍首启向导就能用。
| 平台 | 适合谁 | 说明 |
|---|---|---|
| Zeabur | 国内外都能用,能力最全 | 模板自动生成密钥、绑域名、挂卷 |
| Sealos | 国内用户 | K8s 模板,postgres / redis 走 KubeBlocks |
| Railway | 海外用户 | 控制台里手工搭 6 个服务的逐条清单 + 生成模板的步骤 |
| 1Panel | 自有服务器 + 国产面板 | 应用包,表单里填端口和口令即可 |
| Coolify / Dokploy | 自有服务器 + 自托管 PaaS | 两份可以整段粘贴的 compose |
ℹ️ 这一版还没有「一键部署」按钮。 我们没有这些平台的账号,一次真实部署都没做过, 更没有上架到任何一家的模板市场 —— 所以不放按钮,只给文档。 每份模板都做过等价验证:把模板机械翻译成 compose(同镜像、同环境变量、 用平台自己的方式生成的随机密钥、同卷、同依赖),在本机从空卷跑完 「六服务健康 → 走完向导 → 真实对话 → 深度分析 → 重启数据不丢」。 各篇文档里都写明了「哪些验过、哪些没验过、平台上要自己核对什么」。 有账号的朋友帮忙实测一次,欢迎来 Issues 说结果 —— 验过就加按钮。
公网部署必看:这些平台上的实例一创建就在公网上。模板都默认
关掉了单用户免登录(HUNTER_SINGLE_USER=0)并生成了一道初始化口令
HUNTER_SETUP_TOKEN,向导第 0 步要填它 —— 不然谁先打开谁就能把大模型配成他自己的。
口令在平台的环境变量面板里看。
🖥 桌面启动器(推荐给不熟悉命令行的用户)
下载 → 填一把 key → 等几分钟,整套 HunterCode 自动装好,全程不用敲一条命令。
装完打开按向导走:欢迎 → 填 key → 一次授权 → 选模型 → 自动安装。检测 Docker、挑下载源、 算端口、写配置、拉镜像、起容器由它连着跑完,装好自动打开浏览器。 启动器仓库:agentpit-io/HunterLauncher · 图文说明与截图:www.agentpit.io/hunter-community
—— 徽章上就是当前最新版,下面的链接永远指向它,不用找版本号。
| 平台 | 直接下载(国内可达) | 其他来源 |
|---|---|---|
| macOS 12+ · Intel / Apple 芯片通用 | hunter-launcher-latest-universal.dmg | GitHub Releases |
| Windows 10 / 11 · x64 · 推荐 | hunter-launcher-latest-x64-setup.exe | GitHub Releases |
| Windows · 组策略分发 | hunter-launcher-latest-x64.msi | GitHub Releases |
| Linux x64 | hunter-launcher-latest-amd64.deb / .AppImage | GitHub Releases |
这几个链接是固定的:每次发版都会把最新安装包覆盖到同一个地址, 所以收藏它、贴进文章、做成二维码都不会失效。
想要带版本号的包、逐个文件的 sha256、或是历史版本,看 checksums.txt、manifest.json 与 Releases。
manifest.json里有当前版本号、发布日期与三个包的 体积和完整 sha256 —— 下载页 显示的就是它。
系统要求
- macOS 12+(Intel / Apple 芯片通用)—— 不需要你先装 Docker。本机没有 Docker 时,
启动器会自己准备一套运行环境(内置 Colima + Lima,全装在
~/.hunter/runtime), 不碰你已有的~/.colima、~/.lima、别人的容器与数据卷。本机已有 OrbStack / Docker Desktop / Colima 的话它一个字节都不下。 - Windows 10 / 11 · x64 —— 需要你先装好 Docker Desktop 与 WSL2。 Windows 上装 Docker Desktop 要 WSL 与管理员权限,启动器这一版还没有做这条链路; 装好 Docker Desktop 之后回来点一次「重新检测」就能继续。
安装包没有做代码签名,第一次打开要放行一下
- Windows:SmartScreen 会拦一下 —— 点「更多信息」→「仍要运行」。
- macOS:不要双击,在图标上右键 → 打开,在弹出的对话框里再点一次「打开」。
现状(如实说明)
- 目前每一版都标预发布(prerelease),原因就是上面那条:包没有代码签名。
- macOS 已在真机验证过全流程:2026-09-23 在 Intel · macOS 14.8.5 上跑通了自动准备运行环境 (虚拟机层第一次在真虚拟机上跑通)、开机自检、每日定时备份(LaunchAgent 强制触发后真跑出备份)、 删除应用,以及「备份 → 删除 → 重装 → 恢复」闭环(重装 57 秒、6/6 服务健康、数据原样沿用)。 · 已知问题:0.1.13 及更早版本在 macOS 上的「自动更新」不可用(会下错成 Linux 的包), 这几版升级请手动下载新安装包覆盖安装。
- Windows 尚未真机验证:只在 CI 里编译与打包通过,没有在任何一台真 Windows 上跑过。 你是第一个跑的话,欢迎来 Issues 说结果。
- Linux 在测试机上真机跑通过从零安装、升级、回滚与离线导入。
想自己敲命令,或者要装到远程服务器上,往下看「5 分钟跑起来」—— 两条路装出来的是同一套东西。
🚀 5 分钟跑起来
准备:Docker Desktop(Windows / macOS)或 Docker Engine + Compose v2(Linux) · 磁盘 10 GB · 内存 4 GB(实测峰值约 1.3 GB) · 能访问 ghcr.io
六个服务的镜像都同时提供 amd64 与 arm64,Apple Silicon 与 arm 云主机原生运行,不用模拟。
[!IMPORTANT] 开始前只需要理解两件事
- 模型从哪来。推荐走 HunterCode 内置额度:免费申请一把
hunt_tools_平台 key(约 30 秒),在向导第 2 步选第一张卡,不用自己去各家申请大模型 key,地址和模型名向导自动填好。当前内置额度与默认谷歌模型已于 2026-10-14 凌晨全线升级为谷歌 10-13 发布的旗舰推理模型gemini-4-argon(依托统一大模型网关,换模型仅改配置、全线自动受益)。详见 内置额度使用说明。 · 额度:每把 key 每天 1000 万 token(输入 + 含 thinking 的输出),北京时间 0 点重置;另有每分钟请求数与并发上限。额度用完不是断服 —— 对话里会用中文说清几点重置、怎么改用自带 key,工具与数据供给照常。额度与服务可能调整或下线。 · 隐私:网关只记 token 数与模型名,不记任何 prompt 与回复内容。 · 使用前请读一遍 服务条款与可接受使用政策(English) —— 仅限自部署用户的研究用途,禁止转售、禁止当通用 API 用。 高级路径:自带大模型 key —— DeepSeek 或任何 OpenAI 兼容网关(通义、Claude、GPT、OpenRouter、OneAPI、AIHubMix 等)都行,向导里粘进去当场检测。两条路随时互相切换。- 数据从哪来(三选一,可以先不管):① 免费开源源(A 股行情要在
.env设DATA_SOURCE_PROVIDER=akshare);② 接你自己的 MCP / 数据源;③ 平台数据管道,免费申请 key。详见 数据供给三选一。 走内置额度的话这一步已经顺带解决了 —— 同一把hunt_tools_key 也是数据供给的 key,向导会直接告诉你已解锁。
耗时:自 v1.1.0 起六个服务全部走预构建镜像,不再本地构建 —— 首次约 3–5 分钟(全在下镜像),之后 up -d 几十秒。向导本身约 1 分钟。
git clone https://github.com/agentpit-io/hunter-community
cd hunter-community
docker compose up -d
open http://localhost:3100 # 浏览器里完成首启向导,不用改任何文件
没有第二步。 自 v1.1.0 起 .env 一个字都不用改 —— 密钥自动生成、数据库自动迁移、
六个服务全走预构建镜像;大模型在浏览器里配。
浏览器里的首启向导
第一次打开会自动进入向导(没配大模型时),五步:
| 步骤 | 做什么 |
|---|---|
| 1 · 环境自检 | 六个服务连通、迁移账本、密钥来源与强度、卷可写、访问方式 —— 逐项真探测 |
| 2 · 选大模型 | 第一张卡是「使用 HunterCode 内置额度」(推荐):选中即自动填好地址与模型名(当前内置额度与默认谷歌模型已于 2026-10-14 凌晨全线升级为谷歌 10-13 发布的旗舰推理模型 gemini-4-argon,依托统一大模型网关,换模型仅改配置、全线自动受益),你只要一把 hunt_tools_ key。下面几张是自带 key 的高级路径,带实测的工具调用命中率与耗时(来自 docs/model-testing/) |
| 3 · 填 key 当场测 | 连通 → 对话 → 工具调用三项,失败分类报错,测不通不让保存;内置额度路径下还会顺带把深度分析指向 hunter-deep、用同一把 key 解锁数据供给 |
| 4 · 数据供给 | 免费开源源 / 平台数据管道 / 自接 MCP,三选一,可以跳过。走内置额度的话这里会直接显示「同一把 key 已解锁」 |
| 5 · 完成 | 不重启任何容器热生效,给三个示例问题带你进对话 |
全部截图见 docs/screenshots/builtin-llm/(内置额度全流程)
与 docs/screenshots/setup-wizard/(自带 key 路径)。
[!IMPORTANT] 这台实例只要能从公网打开,就先在
.env里设HUNTER_SETUP_TOKEN(随便一串随机值,openssl rand -base64 24),然后docker compose up -d。 不设的话,谁先打开这个页面谁就能配置大模型 —— 向导判断「来源是不是本机」靠的是 HTTP 转发头,裸docker compose(前面没有 nginx 之类的反代)时那是访问者可以伪造的。 设了之后向导第 0 步会要这个口令,连错 5 次锁 15 分钟。本机 / 内网使用不需要设。
想走老路(在 .env 里写死)也行,而且优先级更高:填了 LLM_BASE_URL / LLM_API_KEY /
LLM_DEFAULT_MODEL 的实例是锁定状态,向导只读展示、改不了它(演示站就是这么跑的)。
要换模型改 .env 后 docker compose up -d(不是 restart —— restart 不重读 .env)。
内置额度也能写死(一键部署模板会这么预填),写法见
内置额度使用说明 · 第六节。
不配大模型时六个服务照样健康,只是发消息会收到一句中文的「大模型尚未配置」。 想以后再配,向导最后一步点「先进对话页(稍后再说)」即可; 要重新跑向导:设置 → 大模型 → 「重新运行初始化向导」。
要改代码的开发者叠加开发覆盖文件 —— 它带回本地构建与全部源码挂载(改 apps/web/public 下的静态文件、scripts/ 下的 MCP 与插件都立即生效):
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build
从 v1.0.x 升级
git pull
docker compose pull && docker compose up -d
bash scripts/migrate-volumes.sh # ⚠️ 只有老用户需要,见下
[!WARNING] 装过 SKILL / 导入过数据包的老用户必须跑一次
scripts/migrate-volumes.sh。 v1.0.x 把./user-skills和./data-packages两个仓库目录直接挂给 api; v1.1.0 起改成 api 自己的具名卷 —— 云平台上没有仓库目录,挂不了。 直接升级的话新卷是空的,你装过的 SKILL 会从界面上消失。 文件一个都没丢(还在user-skills/下),这个脚本就是把它们搬进新卷; 幂等,目标非空时不覆盖。api 启动日志里也会提示。
其余几处变化不需要你做什么:
JWT_SECRET留空不再拒绝启动 —— 首次启动自动生成并写进hunter_secrets卷。 已经在.env里填了的不要动:换掉它会让已保存的 key 全部解不开、登录全部失效。- 数据库迁移改由 api 启动时执行(原来挂给 postgres 的 initdb 目录只在建卷那次跑, 所以老部署一直缺表缺列)。升级后第一次启动会把没跑过的迁移补齐,日志里逐个列出来。
- 用户 SKILL 不再靠 api 与 opencode 共享目录,改由 opencode 按 URL 向 api 拉取。
打开后试试:
- 问「601899 现在多少钱」—— 返回富卡片(实时价 · 52 周分位 · AI 短评)
- 打开顶部「策略中心」—— 全市场扫描筛选器与小鹿研究台
- 点侧栏「UZI 深度分析」输入代码 —— 60–300 秒出多维度深度报告
起不来?先看 常见问题 和 docs/01-getting-started.md,或到 讨论区问答 提问。
🔑 数据供给三选一
大模型 key 之外,数据怎么来由你决定,不强制使用我们的平台 key:
| 方式 | 需要谁的 key | 数据来源 | 适合谁 |
|---|---|---|---|
| ① 免费开源源 | 不需要 | AKShare(A 股)· 腾讯 / 新浪免费通道(港股 / 美股) | 先跑通看效果;A 股行情要在 .env 设 DATA_SOURCE_PROVIDER=akshare,见表下说明 |
| ② 自接工具 / MCP | 你自己的 | 你的券商、数据商、自建 MCP,或 Cline / Cursor 生态里任意 MCP | 已有数据订阅,想接进来用;侧栏「工具箱 +」添加 |
| ③ 平台数据管道 | hunt_tools_ 开头的 key,免费申请 | 平台汇总的行情、财报、新闻数据,UZI 深度分析所需数据,Kronos 走势预测 | 免费源不够用,想要更全的数据 |
免费源怎么开:DATA_SOURCE_PROVIDER 留空时默认是 hunter(平台数据管道),没 key 时 A 股行情会提示去申请 key,不会自动换成免费源;想免 key 看 A 股行情,在 .env 设 DATA_SOURCE_PROVIDER=akshare,再 docker compose up -d。港股 / 美股的行情和日线默认就走内置免费通道(腾讯 / 新浪),不用设。
平台 key 可以写进 .env,也可以在界面左下角「解锁全部工具」里粘贴,立即生效。平台只按 key 记录请求次数,看不到你的对话和持仓。
当前立场:本项目不预置任何具体金融数据厂商的 MCP 集成,等与官方逐一沟通并拿到正式授权后再开放。
- 同花顺(HiThink)· 待官方合作确认:同花顺已在官方文档站列出
fuyao.aicubes.cn/mcp/*系列 MCP 端点,允许开发者自助申请 key;但目前尚未获得同花顺对本项目作为集成方的书面授权,出于合规考虑不预置该数据源。我们正在联系官方,期待建立正式合作。 - 通达信(Tongdaxin)· 待官方开放 MCP 接入文档:通达信官方目前没有对外公开授权的 API 地址与开发者文档,本项目不集成任何未公开授权的接口。我们正在沟通,期待让已购买付费 key 的用户能正常接入。
目前可用:免费开源源(AKShare / yfinance)+ 用户自持的第三方 MCP(通用接入,不预置具体厂商)。
如果你来自数据厂商:欢迎通过 GitHub Issues 或邮件联系我们探讨合作。
✨ 能做什么
💹 数据
- 实时行情 · A / 港 / 美股
- K 线 · 财报 · 新闻
- 龙虎榜 · 十大股东
- 北向 / 南向资金 · AH 溢价
- 巨潮公告 · 行业分类
🧠 分析
- UZI 深度分析 · 大佬评审团
- Kronos 走势预测(清华时序模型)
- 全市场扫描筛选器
- 小鹿研究台 · 量化因子与回测
💬 交互
- 流式对话 · 富卡片(报价 / 新闻 / 预测)
- 侧栏三层:数据源 / 工具箱 / SKILL
- 自选股卡片 · 持仓 · 投资论点
- 策略中心 · 智能交易(纸上交易账本)
🔌 扩展
- Markdown 写 SKILL
- 从 GitHub 一键装 SKILL
- 接自己的 MCP
- 大模型任选
🤖 智能交易(纸上交易账本)
策略中心里的第四个板块:只做模拟盘,不接实盘。它自己按时点跑一条完整的交易链路 —— 取行情快照 → 风控校验 → 撮合成交 → 记账 → 出报告 —— 你可以看到每一笔委托为什么成交、 账目对不对得上,以及策略这一周做了什么。
| 页面 | 看什么 |
|---|---|
| 总览 | 总资产 / 持仓 / 当日盈亏 + 净值曲线 |
| 持仓 | 每只票的成本、现价、浮盈、仓位占比 |
| 委托与成交 | 每一笔委托的四步链路:意图 → 风控 → 撮合 → 记账 |
| 报告 | 系统每天写的操作报告(数字由代码算,文字才由模型写) |
| 帮助 | 这份板的规则与边界 |
几个从设计上就定死的口径:
PAPER_MODE恒为PAPER。请求参数里出现任何实盘相关字段即报错; 交易所凭证一个都不配。这是隔离,不是开关。- 账本只有一个权威。
paper服务是全仓唯一持有账本库运行期角色(fin_paper_rw)的进程, 而那个角色在追加表上没有UPDATE/DELETE权限 —— 「不可篡改」是一条 GRANT,不是一句约定。 - 调度只有一个权威。六个交易时点(09:15 / 09:30 / 11:30 / 13:00 / 14:55 / 15:30)由 Temporal 驱动,不留兜底 cron。Worker 崩了按执行历史恢复,不会重复下单。
- 报告三层分离:事实由代码算、文字由模型写、写完回读校验 —— 校验不过就不发布,
宁可显示
—也不让模型编数字。
这几个服务(
paper/fin-worker/temporal/temporal-ui)都在 compose 的finprofile 下, 默认docker compose up -d不会起它们。要开:bash scripts/fin_provision_paper_role.sh再docker compose --profile fin up -d。 这一版只做 A 股,行情走现仓的providers.data_source。
🧠 个人本地部署:记忆系统与受控自进化(1.6.0 起)
想让复盘学到的经验真的改变策略、并且改得可验证、可回滚、可审计,按
docs/个人本地部署.md 走:叠加 docker-compose.personal.yml
覆盖文件(端口全部收到 127.0.0.1、fin 栈收进 paper profile),从
.env.personal.example 拷一份 env。
闭环是「经验 → 提案(白名单 + 冻结验证口径) → 独立影子验证 → 人工确认生效 → 紧急线回滚」。
默认 observe(拉行情、复盘、建经验、展示提案,没有委托发送能力);经验库默认关,
P1 验收后再把 FIN_MEMORY_ENABLED 设 1。不交付实盘(FIN_LIVE_ORDER_ENABLED 恒 0),
FIN_AUTO_APPLY 恒 0。界面在成长页。
📚 SKILL:把分析方法论变成能力
SKILL 是一段讲清「这类问题该怎么分析」的 Markdown,采用 Anthropic Agent Skills 标准格式,网上下载的标准 SKILL 不用改就能用。
随代码内置 6 个(skills/ 目录):
| SKILL | 分类 | 说明 |
|---|---|---|
uzi | 综合分析 | 投研总调度:按问题分发到深度研究、评审团、龙虎榜、风险扫描 |
investor_panel | 综合分析 | 大佬评审团:模拟价值、成长、游资、量化等 9 大流派投票打分 |
deep_analysis | 投研报告 | 多维度个股深度分析:基本面、技术面、资金面与投委会结论 |
lhb_analyzer | 事件与筛选 | 龙虎榜分析:识别游资席位,判断机构与游资博弈 |
trap_detector | 尽调风控 | 杀猪盘检测:扫描推荐来源、内幕消息、基本面脱节等信号 |
risk_profile | 组合级 | 读写风险偏好、现金与单票上限,供组合建议使用 |
更多来自社区:侧栏 SKILL 一栏点「+」粘贴 GitHub 地址即可安装,装前可预览内容。
| 来源仓库 | SKILL |
|---|---|
| prof-little-bear/cc-equity-research | catalyst_calendar · earnings_analysis · earnings_preview · idea_generation · initiating_coverage · model_update · morning_note · sector_overview · thesis_tracker |
| bmtrnavsky/nanobot-stock-trader | catalyst_growth_investor · longterm_quality_investor · stock_data · swing_trade_scanner |
| algoderiv/agent-skills | rice_quant · tqsdk |
| yennanliu/InvestSkill | invest_stock_eval |
| tigersking520/stock-analysis-skill | stock_analysis |
| 演示站界面内自建 | 1 个 |
以上为 2026-09-16 从演示站 /api/catalog/skills 读取的清单,各 SKILL 的许可证以来源仓库为准。
想写自己的 SKILL?看 扩展 HunterCode。
☁️ 选 Community 还是 Cloud
会用 Docker、想掌控数据、想接自己的数据源或方法论 → Community(本仓库)。只想打开网页或手机就用、需要微信 / 飞书推送 → Cloud。
| 能力 | Community(自部署) | Cloud(hunter.agentpit.io) |
|---|---|---|
| 对话(自带大模型 key) | ✅ | ✅ |
| 免费数据源(AKShare / yfinance) | ✅ 无需我方 key | ✅ |
| 接入自己的 MCP / 数据源 | ✅ 无需我方 key | ✅ |
| 内置 SKILL 与 GitHub 一键装 SKILL | ✅ | ✅ |
| UZI 深度分析 | ✅ 数据三选一 | ✅ |
| Kronos 走势预测 | ✅ 平台管道(免费)· 或自建 GPU · 直连说明 | ✅ |
| 投资论点(本地存储) | ✅ 本地 Postgres | ✅ |
| 微信推送 / 飞书通知 | ❌ | ✅ |
| 多租户计费 | ❌ | ✅ |
📖 深入了解
我们用 7 个标准用例实测每家模型能否正确调用工具 —— 对 HunterCode 来说,「能聊」不够,「会调工具」才算可用。
| 模型 | 接入 | 工具调用命中 | 平均耗时 | 推荐 | 注意 |
|---|---|---|---|---|---|
| Gemini 4 Argon | HunterCode 内置网关 / OneAPI | 7/7 | — | ⭐⭐⭐⭐⭐ 默认内置旗舰推理(100 万上下文) | 2026-10-14 全线切换为默认模型,擅长多步深度推理与长任务 |
| DeepSeek v4 pro | 直连 api.deepseek.com | 6/7 | 30 秒 | ⭐⭐⭐⭐⭐ 直连默认 | 必开 LLM_SCHEMA_SANITIZE=1 |
| Claude Sonnet 5 | AIHubMix 网关 | 7/7 | 25.7 秒 | ⭐⭐⭐⭐⭐ 海外首推 | 容器直连可能被 TLS 指纹拦截,需宿主机代理 |
| Qwen 3.8 Max | AIHubMix 网关 | 7/7 | 48.1 秒 | ⭐⭐⭐⭐⭐ 国内首推 | 深度分析较慢 |
| Gemini 3.5 Flash | AIHubMix 网关 | 6/7 | 62.3 秒 | ⭐⭐⭐⭐ 便宜快 | 边界用例偶发过度调用 |
| Doubao Seed 2.1 Pro | AIHubMix 网关 | 6/7 | 103.9 秒 | ⭐⭐⭐ | 建议直连火山引擎 |
| MiniMax M3 | AIHubMix 网关 | 6/7 | 77.3 秒 | ⭐⭐⭐⭐ | 思考过程泄漏已由 llm-shim 剥离 |
| GPT-5.6 sol | AIHubMix 网关 | 5/7 | 24.4 秒 | ⭐⭐⭐ | 部分用例选错工具 |
实测日期 2026-08-15 / 08-16。各家 .env 模板(含地址、模型名、清洗开关、已知坑):docs/env-samples/。评测方法与原始数据:docs/model-testing/(适配矩阵 · 评测脚本)。
思考类模型的 <think> 泄漏:MiniMax / Qwen thinking / Kimi thinking 会把推理过程夹在回复里,scripts/llm-shim/shim.py 在请求端关闭思考、响应端剥离标签,LLM_STRIP_THINK=0 可关闭。
自选和持仓可以记录每只股票的投资论点(买入理由、关键假设、成本),数据存在本地 Postgres,不出你的机器。
想让 AI 持续跟踪论点是否还成立,可以安装社区 SKILL,例如 prof-little-bear/cc-equity-research 里的 thesis_tracker,在对话中结合最新数据复核。
⚠️ 论点复核结果是 AI 生成的研究参考,不构成投资建议。
| 层 | 技术 |
|---|---|
| 前端 | Next.js 15(App Router)· React 19 · TypeScript 5 · Tailwind CSS · shadcn/ui |
| 后端 | FastAPI · Python 3.12 · httpx · loguru |
| 对话引擎 | OpenCode 定制版 · MCP · Bun |
| 数据库 | Postgres 16 · Redis 7 |
| 大模型 | 任意 OpenAI 兼容网关 · Anthropic · Kronos |
| 认证 | JWT(HS256)· argon2id · 单用户 / 多用户可切换 |
| 部署 | Docker Compose · GHCR 镜像 |
┌─────────────────────┐
浏览器 → │ web (Next.js 15) │ :3100
└────────┬────────────┘
│ /api/*(web 自带转发 · 无需反向代理)
┌────────▼────────────┐ ┌──────────────────┐
│ api (FastAPI) │ │ opencode 对话引擎 │
│ · 认证 (JWT) │◄───────┤ MCP 工具回调 │
│ · 数据 / 模型 / 预测 │ │ 插件:认证 / 守卫 / │
│ · SKILL 加载 │ │ 用量 / 审计 / 上下文│
│ · 分析智能体 │───► 平台数据管道(可选 · 一把 key)
└─┬─────────────┬─────┘ └────────┬─────────┘
│ 工具 schema 清洗
┌──────────▼─────────┐
│ llm-shim :3999 │──► 你的大模型网关
└────────────────────┘
Postgres Redis
:5442 :6479
- web 转发层:Next.js 转发
/api/*与对话流,携带 JWT - hunter-mcp-context:给工具调用注入当前用户身份
- hunter-guard:清洗 MCP schema(兜底 DeepSeek 拒绝
parameters: null) - hunter-auth:JWT 门禁,关联会话与用户
- hunter-budget:用量记账,支持限额(自部署默认关闭)
- hunter-audit:完整审计日志 AUDIT.jsonl
| 层 | 环境变量 | 可选值 | 留空时 |
|---|---|---|---|
| 数据源 | DATA_SOURCE_PROVIDER | hunter · akshare · yfinance · saas | hunter(没配平台 key 也是它) |
| 大模型 | LLM_PROVIDER | openai_compat · anthropic · saas_gemini | openai_compat |
| 预测 | FORECAST_PROVIDER | kronos_saas · kronos_local · noop | kronos_saas |
DATA_SOURCE_PROVIDER 只在没配平台 key 时决定实时行情从哪取:A 股直接用它,港股 / 美股先走内置免费通道、取不到才用它;配了 key 就不看它。AKShare 在容器里访问境内数据源时可能不稳定。返回结构与细节见 docs/02-providers.md。
1. 写自己的 SKILL(最简单)
user-skills/
你的skill名/
SKILL.md
---
name: 你的skill名
description: 一句话说明什么时候该用它 —— 模型据此判断要不要调用
---
# 正文写方法论
分几步、先看什么后看什么、注意什么。
放好后 docker compose restart opencode api,同名时你的覆盖内置的。想调用我们的数据和工具,在 frontmatter 里加 hunter.needs_tools,见 user-skills/README.md。
2. 从 GitHub 一键装 SKILL:侧栏 SKILL 一栏点「+」→ 粘贴 GitHub 地址 → 预览内容 → 安装。
3. 接自己的 MCP:工具箱一栏点「+」,填名称、类型(HTTP / SSE / stdio)、地址和 key,工具描述直接提供给模型。
❓ 常见问题
大概率是大模型三项没填全。docker compose logs opencode --tail 20 会明确说缺哪个:LLM_BASE_URL、LLM_DEFAULT_MODEL、LLM_API_KEY。DeepSeek 还需 LLM_SCHEMA_SANITIZE=1。
在 .env 加 LLM_SCHEMA_SANITIZE=1,然后 docker compose up -d(必须 up,restart 不会重读 .env)。
平台 key(HUNTER_API_KEY)没填或无效时拿不到完整数据。去 hunter.agentpit.io/dev/api-keys 免费申请,或在界面左下角「解锁全部工具」粘贴。
opencode 只在启动时扫描一次 SKILL 目录:
docker compose restart opencode # 约 50 秒
python scripts/check_skill_sync.py # 比对磁盘与 opencode 实际加载的 SKILL
改 .env 里的 WEB_HOST_PORT / API_HOST_PORT / POSTGRES_HOST_PORT,同时把 NEXT_PUBLIC_API_URL 改成新的 API 端口。
见 docs/01-getting-started.md 的常见报错,或到 讨论区问答 提问。
🤝 参与贡献
最简单的贡献是写一个 SKILL —— 懂一种分析方法、会写 Markdown 就够了。其次是文档和翻译,再次是代码。
- 新手任务:
good first issue· 征集中的 SKILL:skill-wanted - 完整流程:CONTRIBUTING.md
- 用 HunterCode 做出了好的分析?欢迎到 成果展示 分享
🙏 贡献者
贡献者名单由 All Contributors 机器人维护。维护者在 issue 或 PR 下评论 @all-contributors please add @用户名 for code 即可添加,贡献类型见 类型说明(代码、文档、SKILL 内容、翻译、报 bug、出点子等都算)。
🧩 基于 HunterCode 的项目
| 项目 | 说明 |
|---|---|
| HunterCode Cloud | 官方托管版,含微信 / 飞书推送 |
你基于 HunterCode 做了二次开发或 fork?欢迎在 讨论区 告诉我们,我们会加到这里。
💝 感谢推荐分享
- 社区:LINUX DO —— 中文开发者社区
💬 社区与支持
| 渠道 | 入口 |
|---|---|
| 💡 GitHub 讨论区 | 提问 · 分享 · 建议 |
| 💬 微信(拉群交流) | agentpit |
| 📱 微信公众号 | agentpit.io |
| 🐦 X | @agentpit_io |
遇到 bug:提交 issue · 安全漏洞:请勿公开,见 SECURITY.md
🗺 路线图
- v0.1 · 自部署骨架、本地账号认证、可插拔数据 / 大模型 / 预测层
- v0.2 · opencode 对话引擎、插件与 MCP、一把 key 通用、GitHub 一键装 SKILL
- v1.0.0(2026-09-13)· 全市场扫描筛选器、小鹿智能体研究台、量化因子与回测按市场隔离、SKILL 导入附属文档与中文说明、kronos / truesource MCP 发布、会话数据落具名卷 —— 完整更新日志
- v1.0.1(2026-09-17)· 对话引擎镜像 7.56 GB → 618 MB(下载量 1.70 GB → 153 MB)、api 镜像 1.32 GB → 909 MB、入口脚本固化、每日部署冒烟 CI、文档与社区基建 —— 瘦身过程与实测
- v1.1.0(2026-09-18)· 免改配置文件开箱即用 —— 里程碑
- 六个服务全部预构建镜像 + amd64/arm64 双架构(
v1.1.0-rc1) - 数据库迁移改为 api 启动时自动执行;
JWT_SECRET等密钥首次启动自动生成 - 大模型配置可存库(不再只能写
.env),改配置热生效、无需重启容器 - 图形化首启向导(选模型 → 填 key 当场测试 → 直接对话)
- 五个平台的部署方案(Zeabur / Sealos / Railway / 1Panel / Coolify·Dokploy) —— 模板与文档就绪并做过等价验证,但都还没在真实平台上跑过、也都没上架, 所以本版不放部署按钮,见 一键部署到云平台
- 进度与实测数据:
docs/setup-wizard/
- 六个服务全部预构建镜像 + amd64/arm64 双架构(
- v1.3.0(2026-10-02)· 智能交易板块(纸上交易账本)一期出口 —— 见 CHANGELOG
- 唯一账本服务
paper:追加表 + 库层 GRANT 拒绝UPDATE/DELETE,确定性 A 股风控六条 - 撮合四步链路(意图 → 风控 → 撮合 → 记账)绑数据源快照,行情断了就挂单、不拿过期价成交
- 六个交易时点交给 Temporal(只调度智能炒股链路,无兜底 cron),崩溃按执行历史恢复
- 报告三层分离:事实由代码算、文字由模型写、回读校验不过就不发布
- 前端五个正文页接真账本;
PAPER_MODE恒为PAPER,请求带实盘字段即报错 - 新增两个镜像
hunter-community-paper/hunter-community-fin-worker(amd64 + arm64)
- 唯一账本服务
- v2.2.0 (2026-10-14) —— 全面支持谷歌 10-13 发布最强模型 Gemini 4 Argon,内置额度与默认谷歌模型全线升级
- 下一步 · 拿到平台账号后逐个实测并上架(那时才加按钮)、国内镜像源、arm64 真机验证
想要什么功能?到 讨论区想法分区 投票。
⭐ Star 趋势
™️ 商标与 Fork
HunterCode · Hunter · AgentPit · 猎鹿人 是 AgentPit 团队的商标。
- 自用 fork、内部部署、学习修改:不需要改名,随便用。
- 对外分发、提供托管服务、商业发布:请去掉上述名称与 Logo,可注明「based on HunterCode Community Edition」。
代码遵循 Apache 2.0,商标条款不影响你对代码的任何权利。另见 NOTICE。
⭐ 觉得有用请点 Star,这是我们继续维护的动力
Made with ❤️ by AgentPit team