This is a PISA agent project initialized with pisa init.
PISA Framework Required: This project is a PISA plugin/extension and requires the PISA framework to be installed.
Option 1: Development Environment (if working on PISA itself)
cd /path/to/pisa
uv pip install -e .Option 2: Production Environment (using released version)
uv pip install pisa.prismer/
├── agent.md # Agent definition
├── pyproject.toml # Custom dependencies
├── .env.example # Configuration template (copy to .env)
├── .gitignore # Git ignore rules
├── README.md # Project documentation
├── cache/ # Cache directory for context and intermediate data
├── capability/ # Custom capabilities
│ ├── function/ # Function-type capabilities
│ ├── subagent/ # Subagent-type capabilities
│ └── mcp/ # MCP-type capabilities
└── loop/ # Custom loop templates
-
Configure Environment: Set up your API keys and configuration:
cd .prismer cp .env.example .env # Edit .env and fill in your API keys
-
Install Dependencies: If your capabilities need additional packages:
# Edit pyproject.toml to add your dependencies uv pip install -e .
-
Edit Agent Definition: Modify
agent.mdto configure your agent -
Implement Capabilities: Add your capabilities in
capability/directories -
Validate: Run
pisa validate agent.mdto check configuration -
Run: Execute
pisa run agent.mdto start your agent
Create a Python file in capability/function/:
from pisa.capability import capability, CapabilityType
@capability(
name="my_function",
description="My function capability",
capability_type=CapabilityType.FUNCTION
)
async def my_function(param: str) -> dict:
return {"result": param}Create a Python file in capability/subagent/:
from pisa.capability import capability, CapabilityType
from pisa.config import Config
from agents import Agent, Runner
@capability(
name="my_subagent",
description="My subagent capability",
capability_type=CapabilityType.AGENT
)
async def my_subagent(task: str) -> dict:
agent = Config.create_agent(
name="subagent",
instructions="...",
model="openai/gpt-oss-120b"
)
runner = Runner(agent=agent)
result = await runner.run(messages=[{"role": "user", "content": task}])
return {"result": result.content}