neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
Centaur is frontier, agentic infrastructure that you own. Centaur is like Claude Tag, but open source and on steroids.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗...and a lot more.
Centaur is a self-hosted agent platform for teams that want one shared agent instead of many one-off local setups.
# 1. Ask from Slack.
@centaur can you figure out why the billing tests are failing?
# 2. Centaur assigns a sandbox for the thread.
# The agent can inspect code, run commands, and call approved tools.
# 3. Progress and the final answer are delivered back to Slack.
You can also drive Centaur directly through the API:
POST /api/session/{thread_key} # create or reuse a session
POST /api/session/{thread_key}/messages # store the user turn
POST /api/session/{thread_key}/execute # start the agent
GET /api/session/{thread_key}/events # stream or replay output
The platform handles sandbox lifecycle, durable transcript storage, tool access, credential injection, workflow execution, and final delivery.
Slack or API
|
v
Centaur API
|
+-- Postgres durable state
+-- tool metadata and workflow runtime
+-- sandbox assignment
|
v
Kubernetes sandbox
|
+-- agent harness
+-- workspace and shell
+-- local tool CLI shims
|
v
Controlled outbound access
The main directories are:
services/api-rs — Rust control plane for agents, tools, workflows, auth, and durable stateservices/slackbotv2 — Slack event handling and Slack deliveryservices/sandbox — agent container image and harness adaptertools — tool pluginsworkflows — workflow pluginsCentaur runs locally on Kubernetes, but local setup does not require a full production Kubernetes installation. A lightweight k3s cluster on a small always-on host is enough. The expected local checkout path is:
/Users/magelinskaas/paradigmxyz/centaur
Clone the repo and enter it:
git clone <repo-url>
cd centaur
Install the local command runner:
brew install just
For a first-time local boot, Centaur needs these infrastructure secrets in your shell:
export OP_SERVICE_ACCOUNT_TOKEN=...
export OP_VAULT=...
export SLACK_BOT_TOKEN=...
export SLACK_SIGNING_SECRET=...
export SLACKBOT_API_KEY=...
To boot optional Teams ingress locally, also export:
export TEAMS_BOT_APP_ID=...
export TEAMS_BOT_APP_PASSWORD=...
export TEAMS_BOT_APP_TENANT_ID=...
# TEAMSBOT_API_KEY is generated by bootstrap when omitted.
Create the Slackbot app at api.slack.com/apps.
Use the app's Bot User OAuth Token for SLACK_BOT_TOKEN and its Signing Secret
for SLACK_SIGNING_SECRET.
What they are for:
OP_SERVICE_ACCOUNT_TOKEN: lets iron-proxy resolve 1Password-backed runtime secretsOP_VAULT: the 1Password vault name or id to read fromSLACK_BOT_TOKEN: Slack bot token for the local Slackbot serviceSLACK_SIGNING_SECRET: verifies incoming Slack requestsSLACKBOT_API_KEY: API key the Slackbot uses to call CentaurCENTAUR_APIRS_ADMIN_API_KEY: optional static bearer token with full access to api-rsCENTAUR_JWT_SIGNING_SECRET: signs short-lived Console and sandbox JWTs accepted by api-rsTEAMS_BOT_APP_ID, TEAMS_BOT_APP_PASSWORD, TEAMS_BOT_APP_TENANT_ID: optional Teams ingress app credentials when teamsbot.enabled=trueTEAMSBOT_API_KEY: API key the Teamsbot uses to call Centaur; generated by local bootstrap when Teams credentials are present and this is omittedThen create local Kubernetes Secrets from those environment variables and boot the stack:
just bootstrap-secrets
just up
After just up finishes, use Slack or the API examples in the Developer Guide.
For a more explicit path, see Running Centaur on a Mac Mini-style setup. It covers k3s on a small VPS, DigitalOcean droplet, Linux box, or Mac Mini-style host.
Tools are small Python plugins. A tool can wrap an internal service, public API, database, search endpoint, deployment system, or anything else an agent should be allowed to use.
tools/my_tool/
├── __init__.py
├── client.py
├── cli.py
├── .env.example
└── pyproject.toml
Each runtime tool should declare a [project.scripts] entry so sandbox startup
can install it as a local CLI shim. Agents discover installed tools with:
centaur-tools list
my-tool --help
Workflow handlers can still invoke tools through ctx.call_tool(...); the
workflow host uses the generated centaur-tools bridge for that compatibility
path. api-rs does not expose legacy HTTP tool-method routes as the current
sandbox tool registry.
Workflows are Python functions with durable steps.
WORKFLOW_NAME = "daily_digest"
async def handler(inp, ctx):
data = await ctx.step("collect", lambda: collect_digest_data(inp))
summary = await ctx.run_agent("summarize", text=f"Summarize this: {data}")
return {"summary": summary}
Use workflows when a task should run longer than one request, wait for something external, run on a schedule, or coordinate multiple agent turns.
Centaur is designed around practical isolation and auditability:
See Security for the full threat model and the mechanisms behind each of these points, including known limitations like the shared credential vault.
Before pushing changes, build and test the affected service locally:
just build-one <service>
just deploy
For Python checks:
uv run ruff check .
uv run ruff format .
uv run pytest
See the Developer Guide for code conventions and end-to-end testing instructions.
Centaur builds on excellent open-source infrastructure, including Rust, Axum, Kubernetes, iron-proxy, and the agent harnesses teams choose to run inside the sandbox.