- README.md is now the product/repo front door (architecture, repo map, local dev, test tiers, delivery flow, doc map). Engine positioning, VedAstro/Codex setup and the oracle/benchmark command reference move verbatim to docs/engine/README.md, docs/engine/vedastro-gateway.md and docs/benchmark/README.md. Capability badges realigned with the registry (91/78/8/0); tests/test_readme_badges.py was red on staging. - AGENTS.md: Part A (environment truth, delivery, worktrees, record placement, bug workflow, growth freeze, frontend red lines, privacy, pre-work check, test tiers) and Part B (reading-rigor constraints). GitHub issue-tracker/triage boilerplate removed: GitHub is a read-only mirror. All strings locked by tests/ are preserved. - CLAUDE.md added: roles, three working modes, task-brief sections, acceptance criteria, session discipline; imports AGENTS.md. - 50 tracked TASK-*/PROGRESS-* files and 3 never-committed briefs move to docs/tasks/ with an index; REPO_LAYOUT.md merged into README. Docs-only change (no gated path touched). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0193vBv6w5MV2cifdTUu9H5P
8.4 KiB
VedAstro Gateway、用户级入口与 Codex 插件
本文从根 README 拆出(2026-09-03),内容原样保留:VedAstro 官方/自建/本地回退三种模式的配置、中国大陆 Gateway 部署边界、
scripts/vedastro_user_entrypoint.py用户级入口,以及把本仓装成 Codex 本地插件的步骤。
VedAstro:聊天产品推荐配置
项目当前固定使用官方 Python SDK vedastro==1.23.25。首次安装依赖时必须安装到项目虚拟环境,并用同一个解释器启动后端,避免子进程落到系统 Python 后出现 No module named vedastro:
.venv/bin/pip install -r requirements.txt
.venv/bin/python scripts/jyotish_api_server.py --host 127.0.0.1 --port 5200
在仓库根目录创建本机私有配置文件 .env.local。聊天场景推荐先使用下面的快速官方证据模式:
VEDASTRO_API_ENDPOINT=https://api.vedastro.org/api
VEDASTRO_ENABLE_NETWORK=1
VEDASTRO_TIMEOUT_SECONDS=20
VEDASTRO_GATEWAY_REQUIRE_OFFICIAL_RAW_RESPONSE=1
# 聊天快速模式:保留 Dasha / Chara Dasha / Shadbala / Ashtakavarga,
# 不执行 10 行星 + 12 宫位的逐项 fan-out。
VEDASTRO_FULL_SNAPSHOT_FANOUT_ENABLED=0
# 免费公共模式下 SearchEvents 范围扫描耗时长且容易限流,
# 聊天请求中默认关闭,避免同步阻塞流式回复。
VEDASTRO_RANGE_SCAN_NETWORK_ENABLED=0
VEDASTRO_CACHE_TTL_SECONDS=604800
VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS=604800
VEDASTRO_GATEWAY_QUEUE_ENABLED=1
VEDASTRO_FREE_TIER_QUEUE=1
VEDASTRO_FAIL_OPEN_LOCAL=1
VEDASTRO_FULL_CATALOG_SAMPLE_LIMIT=0
# 没有 key 时可先使用官方公共/免费模式;不要把 key 放到前端。
# VEDASTRO_API_KEY=your_vedastro_key
该文件已被 .gitignore 忽略;scripts/jyotish_api_server.py、scripts/vedastro_service_adapter.py、scripts/run_quality_gate.py 会自动加载它。VedAstro 子进程默认复用启动后端的 sys.executable;如需指定独立解释器,可设置 VEDASTRO_PYTHON_BIN=/absolute/path/to/python。
快速模式仍会取得 VedAstro 官方原始响应,并让 Gateway 在存在 official_raw_response 时闭合为 official_verified;D1/D9 等基础盘继续由本地 Swiss Ephemeris 负责。它只关闭高延迟 fan-out 与 SearchEvents 范围扫描,不等于关闭 VedAstro。
获得稳定 API key,或把 Gateway 指向自建 VedAstro 服务后,可开启完整模式:
VEDASTRO_API_KEY=your_vedastro_key
VEDASTRO_FULL_SNAPSHOT_FANOUT_ENABLED=1
VEDASTRO_RANGE_SCAN_NETWORK_ENABLED=1
完整模式会增加外部请求数量和首包等待时间,更适合后台任务、预计算或非实时专业解盘,不建议直接放在聊天首轮的同步关键路径。运行 .venv/bin/python scripts/diagnose_vedastro_mode.py 可检查当前模式;通过 /api/vedastro_gateway/status 查看 Gateway 的实际配置和 readiness。
AI/vibe coding 推荐入口:Cline 接本仓 MCP,Aider 负责低成本小改,Dyad 只做前端原型。运行 python3 scripts/print_cline_mcp_config.py 生成 Cline MCP 配置;详情见 docs/vibe_coding_setup.md。
中国大陆用户:VedAstro Gateway 模式
普通中国大陆用户不需要、也不应该让浏览器直连 VedAstro。推荐部署方式是:网页只访问你自己的本地或云端后端;后端通过 VedAstro Gateway 统一管理 self-host、official upstream、TTL/cache、free-tier queue 和 local fallback。
最短配置:
cp .env.cn.example .env.local
.venv/bin/python scripts/jyotish_api_server.py --host 127.0.0.1 --port 5200
npm ci --prefix frontend
npm run dev --prefix frontend
网页侧使用:
Trust Center -> Web Professional Reading v1/api/vedastro_gateway/status查看当前后端策略/api/vedastro_gateway/run生成 VedAstro-compatible evidence packet/api/professional_reading生成网页专业解盘包
关键边界:
- 不要让浏览器直连 VedAstro,也不要把
VEDASTRO_API_KEY放进前端。 VEDASTRO_CACHE_TTL_SECONDS和VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS用于缓存官方或自建服务结果。VEDASTRO_GATEWAY_QUEUE_ENABLED=1/VEDASTRO_FREE_TIER_QUEUE=1用于把昂贵或被限流的外部请求排队。- 如果 VedAstro 官方或自建服务不可达,
VEDASTRO_FAIL_OPEN_LOCAL=1会保持本地 Jyotish 引擎继续输出,并在 Technique Audit Table 里降级标注。 - Gateway 不会默认声称跑完 641 项;它只把 capability catalog、dynamic selection、cache/queue/fallback 状态作为证据边界交给 strict workflow。
Codex 用户级 VedAstro + strict workflow 入口
如果用户在 Codex 窗口从云端 Git 仓库拉取本项目,推荐先走这一条稳定入口,而不是手动拼多个底层脚本:
python3 scripts/vedastro_user_entrypoint.py \
--year YYYY --month MM --day DD --hour HH --minute mm \
--lat LAT --lon LON --tz TZ \
--question "事业机会什么时候出现" \
--themes career,marriage,wealth \
--reference-date 2026-07-02 \
--format markdown
机器读取或交给后续 agent 处理时使用 JSON:
python3 scripts/vedastro_user_entrypoint.py \
--year YYYY --month MM --day DD --hour HH --minute mm \
--lat LAT --lon LON --tz TZ \
--question "事业机会什么时候出现" \
--themes career,health,education,property,children,migration,prashna \
--reference-date 2026-07-02 \
--format json
这个入口会自动做四件事:
- 读取
.env.local并诊断当前是official_extended还是fast_local_fallback。 - 启动
official_full_capability_catalog,给 VedAstro 官方能力目录生成domain / execution_policy / adjudicator_use / confidence_role / blocked_reason。 - 按
--themes做动态选择,避免把健康、教育、房产、子女、迁移、Prashna 等非三大主题塞进general。 - 触发 strict workflow 合同摘要,输出 primary route、可用 route、cache/TTL/free-tier queue 策略和 honesty boundary。
边界必须保留:这个入口不会把 641 项全部当作已执行。它先做官方能力目录分类和主题选择;能自动执行的进入证据层,需要第二人资料、用户文本、校时画像或官方网络预算的方法会保持 needs_user_context、needs_user_text、needs_rectification_profile 或 blocked。
作为 Codex 本地插件安装
本仓现在带了最小插件包装:.codex-plugin/plugin.json。它复用现有 skills/ 与根目录 mcp_server.py,适合你把当前仓直接装进 Codex 本机环境。
- 先把本仓登记到个人 marketplace:
python3 <home>/.codex/skills/.system/plugin-creator/scripts/create_basic_plugin.py \
jyotish-vedic-astrology \
--path ~/.codex/plugins \
--marketplace-path ~/.agents/plugins/marketplace.json \
--marketplace-name personal \
--with-marketplace
上面是 Codex 官方脚本的标准 marketplace 流。如果你要让 当前仓本身 被安装,关键不是用 scaffold 目录跑能力,而是让 ~/.agents/plugins/marketplace.json 里的 jyotish-vedic-astrology 条目最终指向当前仓路径。
最少要确认这一条存在:
{
"name": "jyotish-vedic-astrology",
"source": {
"source": "local",
"path": "<repo>"
}
}
- 若本机还没把 personal marketplace 接进 Codex:
codex plugin marketplace add ~/.agents/plugins/marketplace.json
- 安装插件:
codex plugin add jyotish-vedic-astrology@personal
- 检查是否已被识别:
codex plugin list
- 开一个新线程再测试。Codex 只会在新线程里重新拾取新装的 skills / MCP。
本地更新 / 重装
当你改了 .codex-plugin/plugin.json、skills/ 或 mcp_server.py:
python3 <home>/.codex/skills/.system/plugin-creator/scripts/update_plugin_cachebuster.py \
<repo>
codex plugin add jyotish-vedic-astrology@personal
然后重新开新线程验证。
推荐的 official extended .env.local 示例:
VEDASTRO_API_ENDPOINT=https://api.vedastro.org/api
VEDASTRO_ENABLE_NETWORK=1
VEDASTRO_TIMEOUT_SECONDS=20
VEDASTRO_CACHE_TTL_SECONDS=600
VEDASTRO_OFFICIAL_FULL_SNAPSHOT_CACHE_TTL_SECONDS=600
VEDASTRO_FREE_TIER_QUEUE=1
# 可选
# VEDASTRO_API_KEY=sk_live_xxx
先运行:
python3 scripts/diagnose_vedastro_mode.py
若仍显示 fast_local_fallback,用户级入口仍可运行,但解盘必须把 VedAstro official 证据写成 blocked/降级,不能声称 official extended 已闭环。