feat: redesign landing page around the runtime, add builder start() API, and benchmark agent memory scaling - #104
Merged
Conversation
Deploying infinity with
|
| Latest commit: |
fab57ef
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ce982ea4.infinity-dc7.pages.dev |
| Branch Preview URL: | https://sandbox-c6b6c253-5de3-4526-b.infinity-dc7.pages.dev |
shadaj
added a commit
that referenced
this pull request
Aug 26, 2026
… API, and benchmark agent memory scaling
## Runtime API (`infinity-agent-core`)
* `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does).
* Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form.
## Memory-scaling benchmark
* New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency.
* Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory.
## Landing page redesign
Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections.
* **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; stock Docusaurus code block shows the quickstart snippet (using the new `start()` API).
* **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. Kept linear axes: the data is linear and spans barely one decade.
* **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event (exit 1 with the failing test) wakes it to fix and rerun, and exit 0 closes it out. Explicit idle rows ("18 minutes idle: no task, no polling, zero compute"), fixed-height opacity-only reveal, extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and frames the design as actor-system-like **agent systems**.
* **Serverless**: keeps the time-slicing animation; copy maps one SQS FIFO delivery to one runtime step, with thousands of agents sharing one function.
* **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators (hero, between chapters, product sections) now span the identical content width with the same color.
* **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels.
Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build.
Co-authored-by: Infinity 🤖 <infinity@hydro.run>
PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 26, 2026 20:25
f679678 to
b77c585
Compare
shadaj
marked this pull request as ready for review
August 26, 2026 23:54
shadaj
added a commit
that referenced
this pull request
Aug 27, 2026
… API, and benchmark agent memory scaling ## Runtime API (`infinity-agent-core`) * `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does). * Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form. ## Memory-scaling benchmark * New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency. * Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory. ## Landing page redesign Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections. * **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; stock Docusaurus code block shows the quickstart snippet (using the new `start()` API). * **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. Kept linear axes: the data is linear and spans barely one decade. * **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event wakes it to fix and rerun, and exit 0 closes it out. Tagged rows (user / agent / event) without timestamps; explicit idle rows; fixed-height opacity-only reveal with extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and explains agent systems as actor-like pools that the runtime "intelligently schedules the way an async executor schedules tasks", so thousands of agents make progress on a few threads. * **Serverless**: keeps the time-slicing animation; copy reads "Because agent turns never block, Infinity is perfect for serverless environments" (one Lambda step per SQS delivery) and "Infinity agents can run *forever* with *near-zero cost*"; dropped the FIFO-ordering and shared-function details as too low level. * **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators (hero, between chapters, product sections) span the identical content width with the same color. * **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels. Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 27, 2026 17:53
b77c585 to
66ffd46
Compare
shadaj
added a commit
that referenced
this pull request
Aug 27, 2026
… API, and benchmark agent memory scaling ## Runtime API (`infinity-agent-core`) * `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does). * Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form. ## Memory-scaling benchmark * New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency. * Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory. ## Landing page redesign Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections. * **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; stock Docusaurus code block shows the quickstart snippet (using the new `start()` API). * **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. Kept linear axes: the data is linear and spans barely one decade. * **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event wakes it to fix and rerun, and exit 0 closes it out. Tagged rows (user / agent / event) without timestamps; explicit idle rows; fixed-height opacity-only reveal with extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and explains agent systems as actor-like pools that the runtime "intelligently schedules the way an async executor schedules tasks", so thousands of agents make progress on a few threads. * **Serverless**: keeps the time-slicing animation; copy reads "Because agent turns never block, Infinity is perfect for serverless environments" (one Lambda step per SQS delivery) and "Infinity agents can run *forever* with *near-zero cost*"; dropped the FIFO-ordering and shared-function details as too low level. * **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators (hero, between chapters, product sections) span the identical content width with the same color. * **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels. Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 27, 2026 17:54
66ffd46 to
a51b4ee
Compare
shadaj
added a commit
that referenced
this pull request
Aug 27, 2026
… API, and benchmark agent memory scaling ## Runtime API (`infinity-agent-core`) * `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does). * Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form. ## Memory-scaling benchmark * New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency. * Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory. ## Landing page redesign Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections. * **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; stock Docusaurus code block shows the quickstart snippet (using the new `start()` API). * **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. Kept linear axes: the data is linear and spans barely one decade. * **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event wakes it to fix and rerun, and exit 0 closes it out. Tagged rows (user / agent / event) without timestamps; explicit idle rows; fixed-height opacity-only reveal with extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and explains agent systems as actor-like pools that the runtime "intelligently schedules the way an async executor schedules tasks", so thousands of agents make progress on a few threads. * **Serverless**: keeps the time-slicing animation; copy reads "Because agent turns never block, Infinity is perfect for serverless environments" (one Lambda step per SQS delivery) and "Infinity agents can run *forever* with *near-zero cost*"; dropped the FIFO-ordering and shared-function details as too low level. * **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators (hero, between chapters, product sections) span the identical content width with the same color. * **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels. Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 27, 2026 17:57
a51b4ee to
1699905
Compare
shadaj
added a commit
that referenced
this pull request
Aug 27, 2026
… API, and benchmark agent memory scaling ## Runtime API (`infinity-agent-core`) * `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does). * Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form. ## Memory-scaling benchmark * New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency. * Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory. ## Landing page redesign Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections. * **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; stock Docusaurus code block shows the quickstart snippet (using the new `start()` API). * **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. * **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event wakes it to fix and rerun, and exit 0 closes it out. Tagged rows (user / agent / event) without timestamps; explicit idle rows; fixed-height opacity-only reveal with extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and explains agent systems as actor-like pools that the runtime intelligently schedules like an async executor, so thousands of agents make progress on a few threads. * **Serverless**: keeps the time-slicing animation; copy reads "Because agent turns never block, Infinity is perfect for serverless environments" (one Lambda step per SQS delivery) and "Infinity agents can run *forever* with *near-zero cost*", closing on the CDK constructs and laptop-to-cloud portability instead of AWS service lists. * **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators span the identical content width with the same color. * **Footer**: reorganized into three highlight columns — Infinity Runtime (Quickstart, Architecture, Deploy on AWS Lambda), Reactive Agent Protocol (What is RAP?, Build a RAP Tool, Specification), and Infinity Code (Get Started, Background Agents, Slack Bot). * **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels. Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build. Co-authored-by: Infinity 🤖 <infinity@hydro.run> PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 27, 2026 17:59
1699905 to
d6c4d7c
Compare
… API, and benchmark agent memory scaling
## Runtime API (`infinity-agent-core`)
* `AgentSystemBuilder::start()` builds the local system and starts it with the thread-builder API in one call; `AgentSystemBuilder::start_with_observer(...)` does the same for the custom-observer path. `build_local()` remains the two-phase form for embeddings that hold the built `LocalAgentSystem` before running it (as the daemon does).
* Updated the module example, simple internal call sites, and all agent-systems docs pages to the shorter form.
## Memory-scaling benchmark
* New `crates/infinity-agent-core/examples/agent_scale.rs`: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). Samples `VmRSS` after `malloc_trim` once each wave is idle and prints a CSV. Adds `libc` as a dev-dependency.
* Measured (AMD EPYC 9R14, single thread, in-memory stores): **50,000 agents × 20 turns = 2,000,000 completions in 255 s; 7.9 GB RSS, ≈154 KB per idle agent** — fifty thousand resident agents fit in a Raspberry Pi 5's memory.
## Landing page redesign
Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections.
* **Hero**: tagline leads with the Rust framework and the measured Raspberry Pi claim; the subline pitches the architecture ("Infinity does for agents what async did for threads: instead of blocking on slow tools, agents run them concurrently, yield while they wait, and cost nothing until the next event arrives"); stock Docusaurus code block shows the quickstart snippet using the new `start()` API.
* **Scale**: new `MemoryChart` component plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source.
* **Asynchrony**: new `AgentTrace` component, a transcript-style session log: the agent backgrounds `cargo test`, drafts release notes while the tests run, and goes idle; the run's failure event wakes it to fix and rerun, and exit 0 closes it out. Tagged rows (user / agent / event) without timestamps; explicit idle rows; fixed-height opacity-only reveal with extra-long pauses after idle rows. Copy names the primitives (subscriptions, `spawn_thread`, `sleep`) and explains agent systems as actor-like pools that the runtime intelligently schedules like an async executor, so thousands of agents make progress on a few threads.
* **Serverless**: keeps the time-slicing animation; copy reads "Because agent turns never block, Infinity is perfect for serverless environments" (one Lambda step per SQS delivery) and "Infinity agents can run *forever* with *near-zero cost*", closing on the CDK constructs and laptop-to-cloud portability.
* **RAP / Infinity Code**: standalone sections with title + subtitle headers, aligned to the same 1200px content grid as the chapters; all separators span the identical content width with the same color.
* **Footer**: reorganized into three highlight columns — Infinity Runtime (Quickstart, Architecture, Deploy on AWS Lambda), Reactive Agent Protocol (What is RAP?, Build a RAP Tool, Specification), and Infinity Code (Get Started, Background Agents, Slack Bot).
* **Style**: all copy rewritten in active Hydro-landing register (~two sentences per paragraph, minimal em-dashes); removed the old layer cards, numbered "·" kickers, dotted connectors, alternating flip layout, the Rust-API detail chapter, and the unused `SliceDiagram`/code panels.
Verified: `cargo fmt`, `cargo clippy -p infinity-agent-core --all-targets -D warnings`, `cargo test -p infinity-agent-core` (81 passed), workspace `cargo check --all-targets`, docs prettier + tsc + full docusaurus build.
Co-authored-by: Infinity 🤖 <infinity@hydro.run>
PR: #104
shadaj
force-pushed
the
sandbox-c6b6c253-5de3-4526-ba0f-e98fe288bc7e
branch
from
August 27, 2026 18:04
d6c4d7c to
fab57ef
Compare
MingweiSamuel
approved these changes
Aug 27, 2026
There was a problem hiding this comment.
Pull request overview
This PR updates the public docs site and infinity-agent-core to (1) streamline the local runtime “start” path, (2) add a memory-scaling benchmark that produces the data used for the docs landing-page claim, and (3) redesign the landing page around runtime scale/asynchrony/serverless messaging.
Changes:
- Add
AgentSystemBuilder::start()andAgentSystemBuilder::start_with_observer(...)convenience APIs and update internal call sites + docs examples to use them. - Introduce
agent_scalebenchmark example (pluslibcdev-dependency) to measure RSS scaling across large numbers of resident idle agents. - Redesign the docs landing page with new
MemoryChartandAgentTracecomponents, updated copy, and new CSS/layout.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/src/pages/index.tsx | Rebuild landing page structure and hero to foreground runtime API + scale/asynchrony/serverless chapters. |
| docs/src/css/custom.css | New landing-page layout styles (hero grid, chapters, product sections, trace styling). |
| docs/src/components/MemoryChart.tsx | New SVG chart component plotting agents-vs-RSS benchmark curve and annotations. |
| docs/src/components/AgentTrace.tsx | New transcript-style “agent trace” component with timed reveal animation. |
| docs/docusaurus.config.ts | Reorganize footer links into Runtime / RAP / Infinity Code groupings. |
| docs/docs/infinity-runtime/agent-systems/running-locally.md | Update local-system snippet to use .start() instead of .build_local().start(). |
| docs/docs/infinity-runtime/agent-systems/rap-servers.md | Update RAP server example to use .start() directly. |
| docs/docs/infinity-runtime/agent-systems/overview.md | Update “local mode” example to use .start() and reflect the shorter API form. |
| docs/docs/infinity-runtime/agent-systems/mcp-servers.md | Update MCP server examples to use .start() directly. |
| docs/docs/infinity-runtime/agent-systems/dynamic-configuration.md | Update dynamic config example to use .start() directly. |
| docs/docs/infinity-runtime/agent-systems/customizing-the-engine.md | Update customization example to use .start() directly. |
| docs/docs/infinity-runtime/agent-systems/building-a-system.md | Update quickstart example to use .start() directly. |
| crates/infinity-agent-core/src/system/tests.rs | Update tests to use builder start_with_observer(...) convenience method. |
| crates/infinity-agent-core/src/system/test_support.rs | Update test helpers and launcher setup to use builder start() / start_with_observer(...). |
| crates/infinity-agent-core/src/system/mod.rs | Update module-level docs example to use .start() directly. |
| crates/infinity-agent-core/src/system/builder.rs | Add start() + start_with_observer(...) builder convenience APIs (wrapping build_local().start*). |
| crates/infinity-agent-core/examples/agent_scale.rs | Add memory-scaling benchmark example that prints agents/RSS CSV and reports per-agent memory. |
| crates/infinity-agent-core/Cargo.toml | Add libc dev-dependency for allocator trimming in benchmark. |
| Cargo.lock | Record libc dependency addition in the lockfile. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+92
to
+94
| // Per-agent cost from the overall slope (excluding the empty-system base). | ||
| const perAgentKb = | ||
| (DATA[DATA.length - 1][0] - DATA[0][0]) / lastAgents / 1024; |
Comment on lines
+195
to
+209
| fn rss_bytes() -> u64 { | ||
| let status = std::fs::read_to_string("/proc/self/status").expect("read /proc/self/status"); | ||
| let line = status | ||
| .lines() | ||
| .find(|l| l.starts_with("VmRSS:")) | ||
| .expect("VmRSS line in /proc/self/status"); | ||
| let kb: u64 = line | ||
| .trim_start_matches("VmRSS:") | ||
| .trim() | ||
| .trim_end_matches("kB") | ||
| .trim() | ||
| .parse() | ||
| .expect("parse VmRSS value"); | ||
| kb * 1024 | ||
| } |
Comment on lines
+219
to
+224
| fn env_usize(name: &str, default: usize) -> usize { | ||
| match std::env::var(name) { | ||
| Ok(v) => v.parse().expect("numeric environment variable"), | ||
| Err(_) => default, | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runtime API (
infinity-agent-core)AgentSystemBuilder::start()builds the local system and starts it with the thread-builder API in one call;AgentSystemBuilder::start_with_observer(...)does the same for the custom-observer path.build_local()remains the two-phase form for embeddings that hold the builtLocalAgentSystembefore running it (as the daemon does).Memory-scaling benchmark
crates/infinity-agent-core/examples/agent_scale.rs: launches waves of agents against a self-driving scripted model; every turn is a full runtime round trip (streamed ~1.2 KB completion with a tool call, async tool result through the input queue, follow-up completion). SamplesVmRSSaftermalloc_trimonce each wave is idle and prints a CSV. Addslibcas a dev-dependency.Landing page redesign
Rebuilt around the priorities: clean Rust API in the hero, then Scale → Asynchrony → Serverless chapters, with RAP and Infinity Code as separate product sections.
start()API).MemoryChartcomponent plots the measured 21-point agents-vs-memory curve (inverted axes: resident agents against RSS) with a Raspberry Pi 5 reference line, per-agent slope annotation, and a methodology caption linking to the benchmark source. Kept linear axes: the data is linear and spans barely one decade.AgentTracecomponent, a transcript-style session log with timestamped subscription events, a subagent report, and explicit idle rows ("5 minutes idle: no task, no polling, zero compute"); lines animate in on scroll. Copy names the primitives (subscriptions,spawn_thread,sleep) and frames the design as actor-system-like agent systems.SliceDiagram/code panels.Verified:
cargo fmt,cargo clippy -p infinity-agent-core --all-targets -D warnings,cargo test -p infinity-agent-core(81 passed), workspacecargo check --all-targets, docs prettier + tsc + full docusaurus build.