Skip to content

docs: polyglot engines — install + usage for all 5 languages#17

Merged
brentrager merged 1 commit into
mainfrom
docs-polyglot-engines
Jun 24, 2026
Merged

docs: polyglot engines — install + usage for all 5 languages#17
brentrager merged 1 commit into
mainfrom
docs-polyglot-engines

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

The repo ships the agent engine in five languages (Rust, TypeScript, Python, Go, C#/.NET), all now published and consumable, but there was no single page telling a consumer how to install each one and write a first agent. The README's repository-layout table still lists TS/Python/C# as "Planned."

Solution

Adds docs/Polyglot-Engines.md:

  • What it is + topologysmooth-operator-core is the polyglot ENGINE library (in-process agentic loop, the "LangGraph" analog); the separate smooth-operator repo is the SYSTEM/service that consumes it (the "Onyx" analog). Parity is enforced by behavior via a shared eval suite, not identical type shapes.
  • Feature surface — one list of what every engine supports at parity (loop, RAG, memory, compaction, cost/budget, checkpointing, rerank, sub-agents, cast, human-gate, thread, LlmProvider seam + mock, deferred tools + tool_search, workflow graph, parallel tool calls, retry/backoff, streaming).
  • Per language — install command + package name/version + a minimal "hello agent" (mock provider, one turn) using the actual API.
  • Streaming subsection — the TS runStream StreamEvent tagged union.
  • Links each engine directory and notes the eval suite enforces parity.
  • One-line pointer from the README repository-layout section.

Verification

Every example was checked against the real engine source / tests so the type and method names are accurate:

  • Rustrust/smooth-operator-core/src/agent.rs (Agent, AgentConfig::new, with_llm_provider, runConversation), llm_provider.rs (MockLlmClient, push_text, Clone), lib.rs exports (mock is under llm_provider::), providers.rs/llm.rs (LlmConfig::openrouter), conversation.rs (last_assistant_content).
  • TypeScripttypescript/core/src/index.ts exports, agent.ts (SmoothAgent ctor takes ChatClientLike + AgentOptions, runAgentRunResponse.text, runStreamStreamEvent union), llmProvider.ts (MockLlmProvider implements ChatClientLike, pushText).
  • Pythonpython/core/src/smooth_operator_core/__init__.py, agent.py (SmoothAgent(chat_client, options), async runresult.text, AgentOptions dataclass all-default), llm_provider.py (MockLlmProvider.push_text); matched against python/core/tests/test_agent.py.
  • Gogo/core/agent.go (NewSmoothAgent, Run(ctx, msg, history)AgentRunResponse.Text, AgentOptions struct), llm_provider.go (NewMockLlmProvider().PushText); matched against go/core/agent_test.go. Import path …/go/core (package core).
  • C#dotnet/core/src/SmoothAgent.cs (RunAsync, RunStreamingAsync), LlmProvider.cs (MockLlmProvider : IChatClient, PushText), AgentOptions.cs, AgentRunResponse.cs (Text).

Markdown matches the repo's existing prose/code style (long prose lines and gofmt tabs in the Go block; the repo has no markdownlint config and its own README runs lines >80 chars).

🤖 Generated with Claude Code

Add docs/Polyglot-Engines.md: a single reference for the published
polyglot engine library across Rust, TypeScript, Python, Go, and C#.
Covers what it is + the engine/service topology, the at-parity feature
surface, and a verified minimal "hello agent" (mock provider, one turn)
per language with the actual install command, package name/version, and
API. Each example was checked against the real engine source/tests so the
type and method names match (e.g. Rust Agent/AgentConfig/MockLlmClient
with_llm_provider; TS SmoothAgent/MockLlmProvider.pushText; Python async
run; Go NewSmoothAgent/Run(ctx,…,nil); C# RunAsync). Adds a streaming
subsection (TS runStream StreamEvent union) and links each engine dir +
the parity eval suite. Points to the doc from the README repository
layout section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U7Mn93HpqhSgEmX6tRdPAv
@changeset-bot

changeset-bot Bot commented Jun 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 4643fea

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@brentrager brentrager merged commit 84d5c86 into main Jun 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant