How dashcoder/agent-api works
agent-api is a FastAPI backend that serves a chat/admin UI while keeping Hermes credentials server-side. Its main visitor workflow creates and owns a session, accepts a message and optional attachments, streams agent events back as SSE, and persists conversation state. Separate branches cover visitor identity and saved work, administration, plugin-provided tools, model controls, and optional voice/avatar and OpenRouter observability. Unsampled router behavior is included only where the README documents the capability; several links are therefore documented rather than source-verified.
Main entry points: chat.py Chat API · db.py SQLite store · hermes.py Agent adapter · plugins.py Plugin runtime
Components 22
Chat and agents
- Chat API
app/routers/chat.py - Agent adapter
app/hermes.py - App assembly
app/main.py
Visitors and admin
- SQLite store
app/db.py - Visitor auth
app/auth.py - Saved work
app/routers/user.py - File uploads
app/routers/files.py - Admin API
app/routers/admin.py - Admin console
app/routers/console.py
Plugins and models
- Plugin runtime
app/plugins.py - Plugin management
app/routers/plugins_admin.py - MCP endpoint
app/routers/mcp.py - Plugin tools
- Model controls
app/routers/models.py - LLM utilities
app/llm.py
Voice and observability
- Live avatar
app/routers/simli.py - Text to speech
app/routers/tts.py - OpenRouter traces
app/openrouter_traces.py
Other components
- Agent UI
- Hermes API
- Simli API
- Trace relay
Connections 26
- Agent UI → Chat API: sends chat
README.md - Chat API → SQLite store: stores messages
app/routers/chat.py - Chat API → Agent adapter: streams requests
README.md - Agent adapter → Hermes API: calls Responses API
README.md - Agent adapter → Chat API: yields events
app/hermes.py - Chat API → Agent UI: returns SSE
README.md - Agent UI → Saved work: saves work
README.md - Saved work → SQLite store: persists visitor data
app/routers/user.py - Agent UI → File uploads: uploads attachments
README.md - File uploads → SQLite store: records uploads
- Agent UI → Admin API: administers site
README.md - Admin API → SQLite store: stores settings
app/routers/admin.py - Agent UI → Admin console: views activity
README.md - Admin console → SQLite store: reads audit and chats
app/routers/console.py - App assembly → Plugin runtime: installs plugins
app/main.py - Plugin runtime → Plugin tools: registers tools
app/plugins.py - Plugin runtime → MCP endpoint: mounts plugin routes
app/routers/mcp.py - Agent UI → Plugin management: manages plugins
README.md - Agent UI → Model controls: manages models
- Model controls → LLM utilities: uses utilities
app/routers/models.py - Agent UI → Live avatar: requests avatar
README.md - Live avatar → Simli API: requests token
app/routers/simli.py - Agent UI → Text to speech: requests speech
README.md - Trace relay → OpenRouter traces: delivers traces
README.md - OpenRouter traces → SQLite store: audits spans
app/openrouter_traces.py - App assembly → Chat API: mounts router
app/main.py