How xlang-ai/openagents works
OpenAgents is a chat-based platform for using three kinds of language agents: data analysis, third-party plugins, and autonomous web browsing. The main user workflow is to submit a chat request in the web UI, send it to the backend, and receive an agent response; agent capabilities branch into data operations, plugin calls, or web actions. The tree and README establish these product areas, but the sampled source does not show the full request-routing implementation, so uncertain internal connections are omitted.
Main entry points: app.py HTTP Service · home.tsx Chat UI · chat_executor.py Chat Executor · chat_webot.py Web Agent API
Components 24
Chat Interface
- Chat UI
frontend/pages/api/home/home.tsx - Chat Components
frontend/components/Chat/Chat.tsx - Browser State
frontend/types/storage.ts - API Client
frontend/utils/app/api.ts
Backend Service
- HTTP Service
backend/app.py - Conversation API
backend/api/conversation.py - Data API
backend/api/data_tools.py - Plugin API
backend/api/chat_plugin.py - Web Agent API
backend/api/chat_webot.py - Conversation Store
backend/utils/user_conversation_storage.py
Agent Capabilities
- Data Agent
real_agents/data_agent/copilot.py - Data Executors
real_agents/data_agent/executors/code_generation_executor.py - Plugins Agent
real_agents/plugins_agent/plugin.py - Plugin Executor
real_agents/plugins_agent/executors/plugin_executor.py - Plugin Tools
real_agents/plugins_agent/plugins - Web Actions
backend/api/webot_actions.py - Web Instructions
backend/api/webot_instructions.py
Agent Runtime
- Chat Executor
real_agents/adapters/executors/chat_executor.py - Model Adapters
real_agents/adapters/llm.py - Streaming Callbacks
real_agents/adapters/callbacks/agent_streaming.py
Other components
- User
- LLM Provider
- Plugin Services
- Web Browser
Connections 24
- User → Chat UI: submits request
- Chat UI → Chat Components: renders chat
- Chat UI → Browser State: reads and updates
- Chat UI → API Client: sends requests
- API Client → HTTP Service: HTTP request
- HTTP Service → Conversation API: serves routes
- Conversation API → Conversation Store: stores history
- HTTP Service → Data API: serves routes
- HTTP Service → Plugin API: serves routes
- HTTP Service → Web Agent API: serves routes
- Data API → Data Agent: handles data tasks
- Data Agent → Data Executors: runs analysis
- Plugin API → Plugins Agent: handles plugin tasks
- Plugins Agent → Plugin Executor: dispatches tools
- Plugin Executor → Plugin Tools: invokes plugin
- Plugin Tools → Plugin Services: calls service
- Web Agent API → Web Actions: exposes actions
- Web Agent API → Web Instructions: exposes instructions
- Web Actions → Web Browser: controls browser
- Data Agent → Chat Executor: uses executor
- Plugins Agent → Chat Executor: uses executor
- Chat Executor → Model Adapters: requests generation
- Model Adapters → LLM Provider: calls model
- Chat Executor → Streaming Callbacks: emits events