Core Components
1. Environment
An Environment represents any real-world application or system that the agent can interact with. Examples include:
An EVM wallet
A Telegram client
A Twitter client
Every Environment implements two key methods:
pull() – Returns a set of observations (events, data, messages) to pass to the agent.
push() – Provides an abstract way for the agent to interact back with the environment (e.g., send transactions, post tweets, reply to messages).
2. Chain
A Chain is a predefined sequence of steps describing how the Environment and the agent should interact. Each step typically includes:
An action prompt or instruction telling the agent what to do next (e.g., call a specific tool, query a database, or send a message).
The expected outcome or context transition (e.g., from pulling observations to returning results to the Environment).
3. Core Agent
The Core Agent is the central orchestrator of the system. It can be seen as an agent graph itself or as a node in a larger graph of sub-agents. Its responsibilities include:
Executing tasks specified by the Chain using available tools or sub-agents.
Interacting with internal data sources such as DWH (data warehouse) or RAG (retrieval-augmented generation) systems.
Consolidating and returning the final result of each task.
4. Character Layer
The Character Layer is a “swarm” of sub-agents that specialize in how to respond or interact with observations from the Environment. These agents may embody different personas, communication styles, or decision-making strategies. Their collective input shapes the final response that goes back to the Environment.
Example Flow
Environment → sends observations to Core Agent
Core Agent → processes the data and may delegate tasks to sub-agents or tools
Character Layer → refines or styles the response
Environment → the final output (e.g., a message, transaction, or update)
Last updated