# Character Configuration File
[Character File](https://hackmd.io/cgCOkTr-Q_2xjUpgC8VqZA)
## Name
- `name`:
## Clients
Discord is the most built out. Twitter has some good stuff. It would be good to build out a Farcaster client as they have been getting a lot of requests for it.
Using "direct" client lets you connect to any API.
- `clients`:
## Settings
Secrets are stored per character. Be careful about exposing these. They need to figure out a better way to handle this.
For model proivder use OpenAI or Llama Cloud.
- `settings`:
- `secrets`:
- `voice`:
- `model`:
## System
The "system" directive is always added to the context.
The bots repeat themselves when there is entropy in their context. That is why there are all these values to inject randomly. They have a big impact on diversifying the context with returned elements to keep it fresh.
This was not in the trump example but found in [defaultCharacter](https://github.com/ai16z/eliza/blob/e580ac6ef9f5b27674993bee11c52fba96151c35/core/src/core/defaultCharacter.ts#L17)
- `system`
## Bio
- `bio`:
## Lore
- `lore`:
## Knowledge
Knowledge gets vectorized into embeddings. This would be a good way to integrate a RAG pipeline. Keep them short (2-3 paragraphs). You can also import text files.
- `knowledge`:
## Message Examples
Message examples set the tone for how the character speaks. Think this is related to tuning with [Few-Shot Prompting](https://www.promptingguide.ai/techniques/fewshot).
- `messageExamples`:
## Post Examples
These are sample tweets.
- `postExamples`:
## Topics
Kinda like Mad Libs
- `topics`:
## Style
How the bot should respond. We have a lot of control over how the bot speaks. This is where most of the tuning efforts should be applied.
- `style`:
- `all`:
- `chat`:
- `post`:
## Adjectives
Kinda like Mad Libs
- `adjectives`:
## Nicknames
- `nicknames`:
- `opponents`:
- `allies`:
## Phrases
- `phrases`:
- `promises`:
- `warnings`:
- `victories`: