Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
bda32d2
Add multi-agent communication graph
jamiepine Feb 22, 2026
326482a
Strip instance.db, back links with config
jamiepine Feb 22, 2026
7f557ae
merge main into feat/multi-agent-communication-graph
jamiepine Feb 22, 2026
76808f0
feat: implement agent links and topology management API
jamiepine Feb 23, 2026
4733d30
feat: enhance agent management with display names, roles, and group f…
jamiepine Feb 23, 2026
41d2a06
feat: enhance chat panel components with improved UI and functionality
jamiepine Feb 23, 2026
fe59deb
feat: implement human management API and integrate into topology
jamiepine Feb 23, 2026
47484da
refactor: update link relationship terminology and enhance data struc…
jamiepine Feb 23, 2026
0d93781
feat: add lockfile and enhance agent documentation
jamiepine Feb 23, 2026
3df5db5
feat: implement agent update functionality and enhance topology graph…
jamiepine Feb 23, 2026
5fb059f
feat: add channel deletion functionality and enhance internal message…
jamiepine Feb 23, 2026
b0a1593
feat: enhance link conversation management and introduce conclusion tool
jamiepine Feb 23, 2026
3e8e4bc
fix: unify messaging adapter naming and enhance message logging
jamiepine Feb 23, 2026
6132806
feat: enhance link channel tools and message handling
jamiepine Feb 23, 2026
c920dd9
Merge remote-tracking branch 'origin/main' into feat/multi-agent-comm…
jamiepine Feb 23, 2026
9cda6d8
feat(daemon): add log message truncation function and tests
jamiepine Feb 23, 2026
96b6c14
Merge branch 'main' into feat/multi-agent-communication-graph
jamiepine Feb 24, 2026
05d09ac
refactor: remove unnecessary Ok() from init_background_tracing and in…
jamiepine Feb 24, 2026
5816be9
Merge branch 'main' into feat/multi-agent-communication-graph
jamiepine Feb 24, 2026
0e8340c
Enhance agent messaging and link handling
jamiepine Feb 24, 2026
42298bf
Refactor agent message handling and improve code clarity
jamiepine Feb 24, 2026
7716b63
Enhance agent creation and link update validation
jamiepine Feb 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
795 changes: 795 additions & 0 deletions docs/bun.lock

Large diffs are not rendered by default.

466 changes: 212 additions & 254 deletions docs/content/docs/(core)/agents.mdx

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/content/docs/(deployment)/metrics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,19 @@ The `direction` label on token counts distinguishes input tokens, output (comple

Token usage and estimated costs are tracked per-request. To see total estimated spend:

```promql
```text
sum(spacebot_llm_estimated_cost_dollars) by (agent_id)
```

To see spend rate over the last hour:

```promql
```text
sum(rate(spacebot_llm_estimated_cost_dollars[1h])) by (agent_id, model) * 3600
```

To see token throughput:

```promql
```text
sum(rate(spacebot_llm_tokens_total[5m])) by (direction)
```

Expand Down
14 changes: 14 additions & 0 deletions docs/design-docs/multi-agent-communication-graph.md
Original file line number Diff line number Diff line change
Expand Up @@ -488,3 +488,17 @@ Persistent knowledge nodes with per-agent read/write permissions. Separate desig
**Auditable communication.** Every inter-agent message is persisted in `conversation_messages` with full metadata. The dashboard shows the communication graph with live activity. There are no hidden side channels — everything flows through the link system.

**Foundation for agent teams.** Once links and the topology API exist, the React Flow editor turns agent wiring into a visual, drag-and-drop experience. Non-technical users can design agent organizations without editing config files.

## Known Issues

### Webchat / Portal naming mismatch

The webchat messaging adapter registers as `"webchat"` (`WebChatAdapter::name()` in `messaging/webchat.rs`), but the frontend constructs session IDs with the prefix `"portal"` (`useWebChat.ts`: `portal:chat:${agentId}`). The backend passes the frontend's `session_id` through as the `conversation_id` unchanged, so `extract_platform()` derives `platform = "portal"` from the conversation_id prefix.

This means two different names refer to the same thing:
- **Adapter source** (`message.source`): `"webchat"` — used for outbound routing
- **Platform / conversation_id prefix**: `"portal"` — used for display, channel store

The display name is hardcoded to `"portal:chat"` in `extract_display_name()`. The platform badge shows `"portal"` with no custom icon or color (falls through to gray default).

These should be unified under a single name. Either rename the adapter to `"portal"`, change the frontend session prefix to `"webchat:chat:{agentId}"`, or pick a third name. Needs a decision before addressing.
12 changes: 11 additions & 1 deletion interface/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading