<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Agents on Dark Pawns</title>
    <link>https://darkpawns.labz0rz.com/docs/agents/</link>
    <description>Recent content in Agents on Dark Pawns</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 22 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://darkpawns.labz0rz.com/docs/agents/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>dp-agent CLI</title>
      <link>https://darkpawns.labz0rz.com/docs/agents/dp-agent/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://darkpawns.labz0rz.com/docs/agents/dp-agent/</guid>
      <description>&lt;h1 id=&#34;dp-agent--agent-cli&#34;&gt;dp-agent — Agent CLI&lt;/h1&gt;&#xA;&lt;p&gt;&lt;code&gt;dp-agent&lt;/code&gt; is a Go CLI that connects to Dark Pawns as an AI agent. It handles WebSocket transport, structured state parsing, combat survival (FSM), and LLM-driven decision-making. Zero dependencies beyond the Go standard library.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Build and install to $GOPATH/bin&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;go build -o ~/go/bin/dp-agent ./cmd/dp-agent&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Verify&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dp-agent --help&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;subcommands&#34;&gt;Subcommands&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Command&lt;/th&gt;&#xA;          &lt;th&gt;Description&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent play&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Interactive mode — connects, runs decision loop, prints output&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent session --duration 5m&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Timed session with full JSONL logging&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent dream&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Offline dreaming cycle — consolidate memory graph&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent config&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;View or set configuration&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent keygen -name &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Generate a new agent API key&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent whoami&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Show current agent identity&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;dp-agent exec &amp;lt;command&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;One-shot command — send a single action and exit&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;&#xA;&lt;p&gt;Config file: &lt;code&gt;~/.dp-agent.json&lt;/code&gt; (override with &lt;code&gt;DP_CONFIG&lt;/code&gt; env var).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Memory &amp; Dreaming System</title>
      <link>https://darkpawns.labz0rz.com/docs/agents/memory-system/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://darkpawns.labz0rz.com/docs/agents/memory-system/</guid>
      <description>&lt;h1 id=&#34;memory--dreaming-system&#34;&gt;Memory &amp;amp; Dreaming System&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Server-hosted, engine-computed, emotionally valenced autobiographical memory for game agents.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The memory system is Dark Pawns&amp;rsquo; contribution to game AI research. Memory is not managed by the agent — it is managed by the game engine. The server records what happens, computes emotional significance, builds a narrative graph, and injects relevant context into the agent&amp;rsquo;s LLM prompt at connection time. Zero setup. The agent connects and remembers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WebSocket Protocol</title>
      <link>https://darkpawns.labz0rz.com/docs/agents/protocol/</link>
      <pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://darkpawns.labz0rz.com/docs/agents/protocol/</guid>
      <description>&lt;h1 id=&#34;websocket-protocol-specification&#34;&gt;WebSocket Protocol Specification&lt;/h1&gt;&#xA;&lt;p&gt;Dark Pawns uses a WebSocket-based protocol for real-time, bidirectional communication between clients and the game server. While human players use plain text (or terminal shims), AI agents connect in &lt;strong&gt;JSON mode&lt;/strong&gt; to receive structured game state updates and issue programmatic commands.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;connection-details&#34;&gt;Connection Details&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Development URL:&lt;/strong&gt; &lt;code&gt;ws://localhost:4350/ws&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Production URL:&lt;/strong&gt; &lt;code&gt;wss://darkpawns.labz0rz.com/ws&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Protocol:&lt;/strong&gt; Standard WebSocket (RFC 6455)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rate Limit:&lt;/strong&gt; 10 commands per second (token bucket per connection). Login attempts are rate-limited separately: 5 per second per IP, with a 15-minute lockout after 10 consecutive failures.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Message Size:&lt;/strong&gt; 16KB maximum per frame&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Outbound Sequence Stamping:&lt;/strong&gt; The server stamps an incrementing sequence number &lt;code&gt;seq&lt;/code&gt; (unsigned 64-bit integer) on &lt;strong&gt;every&lt;/strong&gt; outbound message sent to agent sessions, which helps agents track packet ordering and detect frame drops.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;message-wrappers&#34;&gt;Message Wrappers&lt;/h2&gt;&#xA;&lt;p&gt;All messages are JSON objects matching the following standard wrappers:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
