百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
A

ascent-research

> 编程语言
开源

研究代理程序的 CLI

187 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

研究代理程序的 CLI

ascent-research

Your agent's next step up. Every session picks up where you left off. Every turn goes higher.

One-line pitch. ascent-research is an incremental research workflow CLI for AI agents: point it at a topic / source tree / Obsidian vault, and it will keep researching across sessions — fetching, citing, diagramming, and accreting a durable wiki you can come back to tomorrow and pick up exactly where you stopped.

ascent-research new "tokio internals 2026" --slug tokio --preset tech
ascent-research add-local ~/tokio/tokio/src/runtime --glob '**/*.rs'
ascent-research loop tokio --provider claude --iterations 12
ascent-research finish tokio --open           # coverage -> HTML -> audit
# (next day)
ascent-research resume tokio && ascent-research loop tokio --iterations 8

Bookmark-ready: every session lives as plain files under ~/.actionbook/ascent-research//, so Obsidian, VS Code, grep and git all work.

Author's positioning — an external handle for agent self-evolution

A Claude Code or Codex conversation ends. The agent forgets everything. Next week you ask the same question — same search, same fetches, same half-formed understanding.

I built ascent-research because I want my AI agents to get smarter over time, not reset every session. The on-disk session (session.md, session.jsonl, wiki/, SCHEMA.md) is the agent's external long-term memory — survives process death, carries across tool switches, inspectable and editable by the human. Every loop run isn't "research this topic from scratch"; it's "continue the research we were doing, check what's unused from last time, append to the pages you've already written."

The agent-facing surface (actions like write_wiki_page, append_wiki_page, digest_source) exists specifically so the agent can accrete rather than overwrite. The infra-enforced rules (smell test, preserve_diagram_refs, figure-rich contract) exist so this long-term memory stays clean without human QA every turn.

Whether you use it standalone or as a skill inside a coding-agent instance, the pitch is the same: stop throwing away your agent's research work at the end of every conversation. Keep it on disk. Let the next turn stand on the last one's shoulders.

Two ways to use it

ascent-research is a CLI that calls an LLM provider (Claude via cc-sdk, Codex via codex app-server, or fake for tests). Which process hosts the agent decides the usage shape:

Standalone — ascent-research runs its own loop

Run the CLI directly; it spawns the provider itself and drives the research loop end-to-end, no outer agent needed. Good for batch / CI / "I just want a report."

ascent-research new "tokio internals" --slug tokio
ascent-research add-local ~/tokio/tokio/src
ascent-research loop tokio --provider claude --iterations 12
ascent-research finish tokio --open

Skill — driven from a Claude Code or Codex instance

Drop the bundled skill into your Claude Code / Codex config and the outer agent invokes the CLI per-turn as a tool. Good for interactive sessions where you want to mix research with coding / writing work in the same conversation, or want the outer agent to plan the workflow (decide what to ingest, when to query, when to synthesize).

ln -s "$PWD/skills/ascent-research" ~/.claude/skills/ascent-research
# Then in a Claude Code session: /skill:ascent-research
# Or just describe the task — "research tokio's scheduler via source" —
# the skill triggers automatically.

Both modes share the same on-disk session format, so you can start a session in standalone mode and later resume it from inside a Claude Code / Codex instance, or vice versa.


What's new in 0.4.2

  • Third LLM provider: OpenCode Go ($10/mo subscription, OpenAI- and Anthropic-compatible HTTP endpoints to DeepSeek / Kimi / GLM / Qwen / MiniMax). Build with --features provider-opencode-go, set OPENCODE_API_KEY + ASR_OPENCODE_MODEL, then ascent-research loop --provider opencode-go.
  • Useful when Claude Code Pro / ChatGPT Plus subscriptions are out of reach (cost or payment-region constraints). All knobs are env-driven (ASR_OPENCODE_PROTOCOL, ASR_OPENCODE_TEMPERATURE, ASR_OPENCODE_MAX_TOKENS, ASR_OPENCODE_TIMEOUT_MS).
  • Also works as ASR_BILINGUAL_PROVIDER=opencode-go for synthesize --bilingual Chinese translation.
  • CLI defaults unchanged — --provider still defaults to fake; opt in to opencode-go explicitly.
  • Thanks to @Paul-Yuchao-Dong for raising the use case and contributing the initial design (PR #19).

See CHANGELOG.md for the full design rationale incl. what was deliberately not adopted from the PR.


What's new in 0.4.1

  • x.com / twitter.com tweet capture works end-to-end through the V2 browser backend. v0.4.0's generic runcode JS returned ~160 bytes of X's left-nav chrome only; 0.4.1 adds an XTweet runcode flavor that waits for article[data-testid="tweet"] (not networkidle), scrolls with snapshot-collect across virtualized DOM so the main tweet isn't unmounted out of the result, and reads up to 25 thread articles with image / video poster URLs inlined as markdown ``.
  • 3 new tech preset rules: x-tweet-status, x-profile, x-search-live — explicit kinds for route debugging.
  • Bugfix in md_parser::extract_http_links: markdown image syntax `` is now correctly excluded from the cited-sources scan, so embedding pictures of cited tweets no longer trips sources_hallucinated.

Live impact (same URLs, before vs after):

URL 0.4.0 0.4.1
x.com//status/ (any) 162 B chrome 2-3 KB main tweet + thread + media

See CHANGELOG.md for full notes and specs/x-com-tweet-runcode-flavor.spec.md for the design (33 BDD scenarios, lint 100%).


What's new in 0.4.0

  • V2 Actionbook MCP backend is now the default for browser-rendered fetches (Cloud Worker at edge.actionbook.dev/mcp + Chrome extension over WSS). Set ACTIONBOOK_BACKEND=v1-cli to keep the old local-CLI path — it's a permanent fallback, not slated for removal.
  • Catalog seed pre-fetch: every add / batch first probes the V2 catalog and seeds matching actions into the session wiki, so the agent knows what's known about a site before navigating.
  • Composite source fetch: one rule can fan out into N parts (e.g. postagent metadata + browser rendered) merged under composite-v1; short-circuits on first part failure with a labelled composite_failed_part event.
  • 3 new autoresearch actions for the loop: actionbook_search, actionbook_manual, actionbook_run_code.
  • New flags on add / batch: --frame-id, --run-code-args, --reseed, --actionbook-backend.
  • Default per-source timeout raised from 30 s → 90 s (V2 server's inner run-code budget is 60 s; extra 30 s covers edge overhead).
  • Fixes: smell www. ↔ apex equivalence; CJK / UTF-8 docs now pass the add-local text detector; user --timeout > 60s is no longer silently truncated by the V2 server's hard cap.

See CHANGELOG.md for the full list and docs/rfc/v2-session-export-to-postagent.md for the cross-tool RFC that didn't ship in this release.


Why it's different

Five properties — each validated end-to-end across four live research sessions (tokio internals, an Obsidian agent-SE series, a mixed online-plus-local AI coding agents comparison, and self-research on this repo):

0. Autoresearch lineage — 2-file resume, extended to reports

Inherits the core loop architecture from karpathy/autoresearch and pi-autoresearch: a fresh agent can resume any session from two files — session.md (human-readable living doc) + session.jsonl (append-only event log) — even after process death, context reset, or a week of inactivity. Where the original autoresearch optimizes a single scalar (training loss, bundle size, test speed) via edit → benchmark → keep-or-revert, ascent-research generalizes the same loop grammar to research: plan → fetch → digest → write_section / write_wiki_page / write_diagram producing a figure-rich report plus a durable cross-session wiki instead of a single optimized number.

1. Incremental research — sessions resume, knowledge accretes

ascent-research resume picks up exactly where a prior turn stopped. Wiki pages accrue via append_wiki_page — new findings grow existing entity pages instead of overwriting them. Coverage signals (sources_unused, diagrams_referenced, wiki_pages, wiki_total_bytes) let each loop run know what's still open from the previous turn, so it continues rather than restarts. One-shot DR tools can't do this — when they finish, they're done.

2. Three-way ingest, one pipeline

add (HTTP via postagent) + add-local (file trees) + browser fallback (via actionbook browser for JS-heavy pages) all flow through the same smell-test → event-log → wiki → report path. A single session can cite GitHub READMEs, arXiv papers, blog posts, and your private Obsidian notes side-by-side in one wiki page's sources list — the renderer doesn't care about URL scheme.

3. Figure-rich by contract

Narrative-only output is considered incomplete. The loop's system prompt carries a non-negotiable FIGURE-RICH CONTRACT: target ≥ 1 hand-drawn SVG per numbered section, bidirectional rule that every `` markdown reference must have a matching write_diagram action and vice versa, infra-level guarantee that section overwrites never drop figures. Every SVG is inline (no external assets, no screenshots) and the HTML report has a clickable wiki TOC + EN/ZH bilingual toggle.

4. Infra-enforced correctness + machine-readable errors

Agents can't "just summarize this for me." Every fetch runs through a smell test at the CLI layer before the LLM sees it; rejections become typed events. Overwrites preserve figures. Wiki writes are append-safe. Coverage computes sources_hallucinated (URLs cited but never fetched) as a report_ready blocker. Every error returns a machine-readable code (NO_ACTIVE_SESSION, SMELL_REJECTED, DIAGRAM_OUT_OF_BOUNDS, WIKI_EMPTY, …) so agents route recovery deterministically without parsing prose.


Install

git clone https://github.com/actionbook/ascent-research
cd ascent-research

# Full build (loop + Claude provider) — what live sessions need
cargo build -p ascent-research --release --features "autoresearch provider-claude provider-codex"

export PATH="$PWD/target/release:$PATH"
ascent-research --help

Alternative feature sets:

# Minimal — no autonomous loop, no LLM
cargo build -p ascent-research --release

# Loop with fake provider only (for scripted tests)
cargo build -p ascent-research --release --features autoresearch

# Loop with Codex instead of Claude
cargo build -p ascent-research --release --features "autoresearch provider-codex"

Prereqs for online ingest: Rust stable (edition 2024), postagent for HTTP API fetches, and (for JS-heavy pages) the Actionbook Chrome extension — see below. Neither is required if you only use add-local.

Browser ingest backends

ascent-research picks between two actionbook backends based on ACTIONBOOK_BACKEND (default v2-mcp):

Env value Path What's needed
v2-mcp (default) Cloud MCP at edge.actionbook.dev/mcp + Actionbook Chrome extension over WSS ACTIONBOOK_API_KEY (an ak_* token), Chrome extension installed & signed in
v1-cli Local actionbook CLI subprocess (offline-capable fallback, permanently supported) The actionbook binary on PATH, and your Chrome profile reachable by it

V2 setup:

  1. Install the **Actionbook Cl

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月18日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言