尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证💱 Invest with news debate agents, 🤑 algorithmic entry/exit strategies, 💹 execute on Alpaca, 🔮 copy trade Polymarket/Kalshi prediction markets
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
AI-powered multi-agent trading system for comprehensive stock & prediction markets analysis and automated trading decisions.
Auto Investment Broker combines specialized LLM agents to analyze markets, debate strategies, and execute trades. It features real-time data processing, a "Bull vs. Bear" debate engine, and a modern dashboard for visualization.查看完整 README ↗AI-powered multi-agent trading system for comprehensive stock & prediction markets analysis and automated trading decisions.
Auto Investment Broker combines specialized LLM agents to analyze markets, debate strategies, and execute trades. It features real-time data processing, a "Bull vs. Bear" debate engine, and a modern dashboard for visualization.
Full documentation lives at autoinvestment.broker/docs
Engineering notes that are not part of the published docs live in
devdocs/.
The repo is a Turborepo workspace. Every command below can be run
from the repo root, and turbo fans it out to the workspaces that define it.
.
├── apps/
│ └── ai-broker-web/ # Next.js app (UI, API routes, docs, D1 schema & migrations)
├── packages/
│ ├── investing/ # Trading agents, market data, prediction markets
│ ├── ai-broker-api-client/ # Generated API client
│ ├── fin-data-api/ # Financial data API service
│ └── mcp-server/ # MCP server generated from the OpenAPI spec
├── devdocs/ # Internal engineering notes
├── third-party-trading-bots/ # Vendored reference bots (see its README)
├── turbo.json # Task graph & caching
├── tsconfig.base.json # Shared TypeScript compiler options
├── README.md
├── CHANGELOG.md
└── LICENSE.md
npm install # installs every workspace
npm run dev # turbo run dev
npm run build # turbo run build (packages first, then the app)
npm run test # turbo run test
npm run test:coverage # turbo run test:coverage, then merge into coverage/lcov.info
# Scope a command to a single workspace
npx turbo run build --filter=ai-broker-web
npx turbo run test --filter=investing
npm run test:coverage runs each workspace's suite with coverage on (Vitest for the app,
investing and the API client; Jest for fin-data-api) and merges the
per-workspace LCOV reports into coverage/lcov.info with repository-root-relative paths.
CI runs the same command on every pull request in
.github/workflows/test.yml and uploads that single report to
Codecov. The upload needs a
CODECOV_TOKEN repository or organization secret. Thresholds, the per-workspace component
breakdown, and the paths excluded from coverage (vendored bots, generated SDKs, migrations) live
in codecov.yml; the project and patch checks are informational, so a coverage dip
never blocks a merge on its own.
Each workspace documents itself:
| Workspace | README |
|---|---|
| The app | apps/ai-broker-web |
| Trading agents & market data | packages/investing |
| Financial data API | packages/fin-data-api |
| Generated API client | packages/ai-broker-api-client |
| MCP server | packages/mcp-server |
| Cron routes | apps/ai-broker-web/app/api/cron |
| Engineering notes | devdocs |
| Agent/Team | Role |
|---|---|
| Analyst Team | Gathers data: Fundamentals, Sentiment (Social), News, & Technical Analysis. |
| Researcher Team | Conducts "Bull vs. Bear" debates; assesses risk. |
| Trader Agent | Synthesizes reports to propose trades. |
| Portfolio Manager | Final decision maker; manages risk and position sizing. |
The full guide — creating the D1 database, secrets, Git-connected builds, custom domains, rollbacks, and a deployment checklist — is at docs.autoinvestment.broker/docs/deployment.
The app runs on Cloudflare Workers via vinext — the Next.js API surface reimplemented as a Vite plugin — with D1 as the database, better-auth for authentication, and Email Workers for transactional email (verification, password reset, invitations).
# Local dev (vinext dev server; the server runs in workerd, so D1 & email
# bindings from wrangler.jsonc are live)
npm run dev
# Apply drizzle migrations to D1
npm run db:migrate:local # local miniflare D1
npm run db:migrate:remote # production D1 (ai-broker-db)
# Preview the production worker locally
npm run preview
# Deploy
npm run deploy
Setup notes:
apps/ai-broker-web/vite.config.ts (there is no next.config): the vinext() plugin holds the Next.js options, and @cloudflare/vite-plugin runs the server environment in workerd. apps/ai-broker-web/worker/index.ts is the Worker entry — it delegates to vinext's fetch handler and adds the cron scheduled handler.npm run build therefore ends with node .github/scripts/write-root-deploy-config.mjs, which mirrors the .wrangler/deploy/config.json redirect that @cloudflare/vite-plugin writes inside apps/ai-broker-web up to the repository root, so npx wrangler deploy and npx wrangler versions upload resolve the built Worker instead of failing with "Missing entry-point to Worker script or to assets directory". Pointing the Workers Builds root directory at apps/ai-broker-web is the alternative, but then the workspace packages it depends on are no longer built.apps/ai-broker-web/wrangler.jsonc: DB (D1 database ai-broker-db), SEND_EMAIL (Email Workers), cron triggers for the /api/cron/* routes. Read them in server code with import { env } from "cloudflare:workers".cache: { cdn: cdnAdapter() } in vite.config.ts, "cache": { "enabled": true } in wrangler.jsonc). Add data: kvDataAdapter() and a VINEXT_KV_CACHE KV binding if the "use cache" data cache is needed.apps/ai-broker-web/.env (vinext reads .env* files next to the app, following Next.js precedence). drizzle.config.ts additionally falls back to a root .env.wrangler secret put BETTER_AUTH_SECRET (likewise GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, CRON_SECRET)./admin (user directory and database controls) is gated on , a comma-separated allowlist of addresses — . With it unset nobody is an admin, including the first registered user, so a deployment that forgets it simply has no admin rather than an open one.third-party-trading-bots/ vendors ten
open-source trading bots, market-data services, and exchange clients as prior
art. They are outside the turbo task graph and are never built or deployed —
they are read for how other people size positions, batch LLM calls, model
prediction markets, and normalize venue APIs. Each subdirectory keeps its own
upstream license and README; the index
describes what each one contributes.
| Project | What it is |
|---|---|
| Kalshi-Vibe-Bot | Autonomous Kalshi binary-markets bot: local vetting, batched Gemini/Grok calls, Kelly sizing, stop-loss-only exits |
| Polymarket-BTC-15-Minute-Trading-Bot | Seven-phase NautilusTrader bot for 15-minute BTC markets with signal fusion and self-tuning weights |
| Prediction-Markets-Trading-Bot-Toolkits | Rust/Tokio execution core running ten strategies across seven venues through one adapter stack |
| ai-hedge-fund | Eighteen-agent research fund modeled on named investors; generates orders, never trades |
| debate-agents | LangGraph "bull vs. bear" debate graph — the ancestor of this repo's debate engine |
| fin-data-api-python | OpenBB Platform core plus ~35 data providers behind one fetcher contract |
| kalshi-bot-api | PyKalshi — typed Kalshi client with WebSocket streaming and pandas output |
ADMIN_EMAILSwrangler secret put ADMIN_EMAILSEMAIL_FROM sender on a verified domain and recipient destination rules configured; without the binding, messages are logged instead of sent so local flows still complete.DB binding; outside Workers (maintenance scripts, CI, drizzle-kit) the same D1 database is reached over its REST API, which needs CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_D1_TOKEN, and optionally CLOUDFLARE_DATABASE_ID. There is no libsql/Turso, Postgres, or local sqlite fallback.DB binding rather than a TCP database client, and read bundled JSON through an import rather than fs. Adding either back is what breaks a deploy that builds cleanly.find apps/ai-broker-web/dist/server -name '*.js' -not -path '*/ssr/*' | xargs cat | gzip -9 | wc -c after a build.| TypeScript hedged-arbitrage bot for Polymarket 15-minute binaries |
| poly-bot-openclaw | OpenClaw agent framework with PnL-driven survival states and x402 machine payments |
| polymarket-exec-api | pmxt — "the ccxt for prediction markets", one API over six venues in Python and TypeScript |