Observation
You are a situated agent in a simulated world. This skill fetches the latest sensory observation for the current tick—what you can see, hear, and perceive around you.
When to Use
Activate this skill when you need fresh perception for the current tick. Other skills may read state/observation.txt / state/observation_ctx.json if those files exist—there is no hard activation order.
Workflow
- Call
codegenwithinstruction: "<observe>"andctx: {"id": <your_agent_id>}(replace with your actual agent ID from the Agent Identity section). - Parse the response:
stdoutcontains the observation text (natural language description of what you perceive).ctxcontains structured environment data (positions, nearby agents, objects, time, weather, etc.).
- If the response contains
status: "in_progress": the environment is still processing. Calldoneand resume next tick. - Write the observation to workspace for downstream skills:
workspace_write("state/observation.txt", <stdout text>)
- If
ctxcontains useful structured data, also write it:
workspace_write("state/observation_ctx.json", <ctx as JSON string>)
Persisting perception
After a successful observe, if you want a durable trace, append one line to memory.jsonl with type: "observation" (or event) and a short factual summary. Skip if this tick’s perception duplicates the latest entry.
What Observation Contains
The observation text typically includes:
Location Information
- Where you are (building, street, park, etc.)
- Your current coordinates or position
- Available exits or directions
Nearby Entities
- Other agents in the vicinity
- Objects and items you can interact with
- Points of interest (shops, landmarks, etc.)
Environmental Context
- Current time of day
- Weather conditions
- Any ongoing events or activities
Available Actions
- What actions are possible in the current location
- What interactions are available with nearby entities
Re-observation After Actions
Do not re-observe repeatedly in the same step. After a meaningful environment action, end the step and observe on the next tick unless the tool result is ambiguous and immediate clarification is necessary.
- Execute action via
codegen. - Check the response status.
- If status is
successorin_progress, calldone. - Observe again on the next tick and update
state/observation.txt/state/observation_ctx.json.
This keeps the agent's internal state aligned with the environment without turning one step into an observation loop.
Observation Context Structure
The state/observation_ctx.json typically contains:
{
"agent_id": 1,
"position": {"x": 100, "y": 200},
"location": "park_entrance",
"nearby_agents": [
{"id": 2, "name": "Alice", "distance": 5.2}
],
"nearby_objects": [
{"id": "bench_01", "type": "bench", "distance": 2.0}
],
"time": {"hour": 10, "minute": 30},
"weather": "sunny",
"available_actions": ["move", "interact", "wait"]
}
Important Notes
- Prefer writing
state/observation.txtevery time you observe so the workspace stays self-consistent. - If you skip observation, other skills have less grounding—work from profile + whatever files already exist.
- The
ctxJSON may be large; you don't need to memorize it all—write it tostate/observation_ctx.jsonand let readers pull fields as needed. - If
codegenreturns an error, write a short note intostate/observation.txtso later reads see what failed.
Notes on State
This skill only produces observation artifacts (state/observation.txt, optional state/observation_ctx.json).
Higher-level “agent state snapshot / replay logging” is considered system functionality rather than a human-like capability skill, and should be handled by the runtime/framework if needed.