$ geist agents --list --verbose
discovering registered agents...
found: 8 agents, 15 tools, 3 workflows
Production-ready AI agents with domain-specific tools. Auto-discovered, semantically-routed, and orchestrated for complex multi-step workflows.
agent.goal()AI-powered goal planning, tracking, and achievement support with intelligent breakdown of objectives into actionable steps.
agent.contact()Intelligent contact and relationship management with interaction tracking and smart suggestions for maintaining connections.
agent.calendar()Smart calendar management with conflict detection, scheduling optimization, and recurring event handling.
agent.surgery()Generate AI-powered surgical reconstruction recommendations with evidence-based rationales for dermatological procedures.
agent.image()Analyze surgical defect images for measurements, tissue quality, and technique suggestions with multimodal AI.
agent.education()Generate educational surgical content with step-by-step instructions, clinical pearls, and procedural guidance.
agent.voice()Extract structured wound data from natural language voice transcripts for hands-free surgical documentation.
agent.orchestrator()Routes user requests to appropriate domain agents using semantic understanding and intent classification.
Complete surgical case assessment from image upload through recommendation generation.
Process and analyze uploaded surgical images with automatic quality validation.
Generate comprehensive surgical recommendations with educational content.
// how the agent system works under the hood
framework.discover()Agents and tools are automatically discovered and registered at startup using decorators and reflection.
@register_agent(domain="healthcare")
class SurgicalAgent(BaseAgent):
"""Auto-registered at startup"""
passframework.route()Intent classification uses embedding-based semantic matching to route requests to the right agent.
# User: "analyze this wound" intent = await router.classify(query) # -> ImageAnalysisAgent (0.94 confidence)
framework.isolate()Agents operate within their domain boundaries with configurable cross-domain access policies.
@domain_access(
allow=["healthcare"],
deny=["billing"]
)
async def process(self, ctx): ...framework.llm()Support for multiple LLM providers with automatic fallback and model selection.
# Supports: OpenAI, Anthropic, Google, Local
llm = LLMFactory.create(
provider="anthropic",
model="claude-sonnet-4-20250514"
)Get access to the full agent framework. Deploy custom agents with your own tools and workflows.